`
默翁1
  • 浏览: 27074 次
社区版块
存档分类
最新评论

spring的属性注入方法

 
阅读更多
public class Person {
	//儿子,该属性是son类的一个实例
	private Son son;
	private String age;
	public Son getSon() {
		return son;
	}
	public void setSon(Son son) {
		this.son = son;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
}

 

public class Son {
	private String age;

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}
	
}

 

<bean id="person" class="application.Person">
		<property name="age" value="20"></property>
		<!-- 该属性是Son类的一个实例 -->
		<property name="son">
			<bean class="application.Son">
				<property name="age" value="16"></property>
			</bean>
		</property>
	</bean>

 

public static void main(String[] args) {
		ApplicationContext context=new ClassPathXmlApplicationContext("config/applicationContext.xml");
		Person person=(Person)context.getBean("person");
		System.out.println("person的年龄为:"+person.getAge());
		System.out.println("person的son的年龄为:"+person.getSon().getAge());
		
	}

 

person的年龄为:20
person的son的年龄为:16

 配置方式二:通过PropertyPathFactoryBean类,可以注入某个实例的属性值

<bean id="son1" class="application.Son">
		<!-- 将person类中son的age属性输入到son1中age属性 -->
		<property name="age">
			<bean id="person.son.age" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
		</property>
	</bean>

 

public static void main(String[] args) {
		ApplicationContext context=new ClassPathXmlApplicationContext("config/applicationContext.xml");
		Son son1=(Son)context.getBean("son1");
		System.out.println(son1.getAge());
	}



结果为:16

 配置方式三:使用PropertyPathFactoryBean必须指定以下两个属性。
                       1.targetBeanName:用于指定目标bean,确定获取哪个bean的属性值。
                        2.propertyPath:用于指定属性,确定获取目标bean的哪个属性值,此处的属性可直接使用  属性表达式。可以将基本数据类型的属性值定义成bean实例。

<bean id="son2" class="org.springframework.beans.factory.config.PropertyPathFactoryBean">
		<property name="targetBeanName">
			<value>person</value>
		</property>
		<property name="propertyPath">
			<value>son</value>
		</property>
	</bean>

 

public static void main(String[] args) {
		ApplicationContext context=new ClassPathXmlApplicationContext("config/applicationContext.xml");
		Son son2=(Son)context.getBean("son2");
		System.out.println(son2.getAge());
	}


结果:16

 

分享到:
评论

相关推荐

    spring 普通属性注入

    在Spring框架中,属性注入是核心特性之一,它允许我们通过依赖注入(Dependency Injection, DI)来管理对象的属性,而不是让对象自行创建或查找它们的依赖。这有助于提高代码的可测试性、可维护性和解耦性。下面将...

    Spring学习笔记(8)----属性注入的方式

    在Spring框架中,属性注入是将外部配置的属性值注入到Bean对象中,使得对象可以在运行时根据配置动态地获取其依赖的属性。本篇学习笔记主要探讨了Spring中的属性注入方式,包括了传统的XML配置注入、注解式注入以及...

    Spring属性注入

    在Spring中,属性注入(Property Injection)是一种重要的功能,它允许开发者在不直接创建对象的情况下设置对象的属性,从而实现了松耦合和更好的可测试性。 **XML方式的属性注入** 1. **Set注入**:这是Spring ...

    Spring注解注入属性

    ### Spring注解注入属性 #### 一、传统方式与注解方式对比 在Spring框架中,依赖注入(DI)是一种核心的设计模式,用于促进松耦合的系统设计,使得组件之间的依赖关系可以在运行时动态地建立,而不是在编译时硬...

    spring工厂属性注入

    在Spring框架中,属性注入是一种核心特性,它允许开发者在不编写硬编码依赖关系的代码情况下,将对象的依赖从内部解耦出来。当我们遇到一些特殊的对象,如由工厂方法创建,而非简单地通过`new`关键字实例化时,...

    day38 17-Spring的Bean的属性注入:注解方式

    在Spring框架中,Bean的属性注入是核心功能之一,它允许开发者在不编写代码的情况下配置对象的依赖关系。本文将详细讲解使用注解方式进行Bean属性注入的方法,以及相关的源码和工具应用。 首先,让我们了解Spring中...

    Spring boot工具类静态属性注入及多环境配置详解

    Spring Boot工具类静态属性注入及多环境配置详解 Spring Boot工具类静态属性注入是指使用Spring Boot框架时,如何将配置信息注入到工具类的静态变量中,以便在程序中使用这些配置信息。这种方式可以方便地在不同的...

    Spring Ioc(依赖注入)入门例子--属性注入

    在Spring中,有两种主要的属性注入方式:setter方法注入和构造器注入。 1. Setter方法注入:这是最常用的方式,通过在类中定义带有`set`前缀的方法,Spring容器会调用这些方法来设置依赖。例如: ```java public ...

    关于spring boot中几种注入方法的一些个人看法

    Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...

    spring各种属性的注入

    通过本文档的学习,我们可以了解到Spring框架中各种属性注入的基本方法。这些方法不仅限于基本数据类型和集合类型,还包括Bean之间的引用注入,这些功能大大增强了Spring框架的灵活性和扩展性,使得开发人员能够更加...

    Spring In Action 属性注入

    《Spring In Action 属性注入详解》 在Java开发中,Spring框架因其强大的依赖注入(Dependency Injection,简称DI)特性而备受推崇。属性注入是DI的一种实现方式,它允许我们在不直接编写代码创建对象的情况下,...

    Spring中的方法注入

    综上所述,Spring中的方法注入提供了更灵活的方式来管理和注入依赖,它与构造函数注入、属性注入等一起,构成了Spring强大的依赖注入机制。理解并合理使用这些注入方式,可以帮助我们编写出更加健壮、易于维护的代码...

    知识共享-spring属性注入(雷惊风).

    标题与描述中的关键词“知识共享-Spring属性注入”聚焦于Spring框架中的一种核心特性——依赖注入(Dependency Injection,DI)。Spring框架通过DI机制,能够自动地管理对象间的依赖关系,从而简化了Java应用的开发...

    spring依赖注入底层详解

    1. 反射:Spring使用Java的反射API动态地查找和调用构造函数、setter方法等,实现对象的创建和属性设置。当容器遇到带有@Autowired注解的字段或方法时,会根据类型或名称找到合适的依赖,并通过反射进行注入。 2. ...

    spring的注入方式

    首先,你需要在类中声明需要注入的属性,并提供对应的setter方法。然后,在Spring的配置文件中,定义bean并指定其属性值。例如,如果你有一个`UserService`类需要注入`UserRepository`,在XML配置文件中可以这样写:...

    Spring Boot系列四 Spring @Value 属性注入使用总结一

    Spring Boot系列四 Spring @Value 属性注入使用总结一

    Spring的注入方式详解

    下面我们将详细探讨Spring 中的三种注入方式:接口依赖注入(Type1)、setter/getter 注入(Type2,也称为属性注入)和构造方法注入(Type3)。 1. **接口依赖注入(Type1)** 这种注入方式相对不常见,主要适用于...

    Spring IOC之方法注入

    这种方法与传统的构造器注入和属性注入相比,提供了更大的灵活性,因为它可以在对象完全初始化后按需注入依赖。这在某些场景下特别有用,比如当依赖的实例化需要在特定时刻或条件满足时进行。 在Spring中,方法注入...

    day38 11-Spring的Bean的属性的注入:对象属性

    - 自Spring 2.5引入注解支持以来,我们可以通过在字段或setter方法上使用`@Autowired`注解来进行属性注入。 ```java @Component public class ExampleClass { @Autowired private AnotherBean myObject; @...

    spring依赖注入的实现原理

    1. **setter方法注入**:Spring通过调用对象的setter方法来设置其依赖的实例。在bean配置文件中,使用`&lt;property&gt;`标签指定依赖属性。 2. **构造器注入**:Spring可以通过调用带有多个参数的构造函数来注入依赖。在...

Global site tag (gtag.js) - Google Analytics