Spring DI 利用构造函数给属性赋值

1、在 Person.java 中添加构造函数

		public  class  Person{
			public  Person(String  pname, Student  stu){
				this.pname = pname;
				this.student = stu
			}
		}	

2、修改applicationContext-di-constructor.xml

		<!--
			1、如果spring配置文件中的bean没有<constructor-arg>元素,则调用默认的构造函数
			2、如果有<constructor-arg>,则该元素配置唯一的构造函数,则该元素确定唯一的构造函数。
					index 代表参数的位置,从0开始计算
					type 代表参数类型
					value 给基本类型赋值
					ref  给引用类型赋值

		-->
		<bean  id="person_Con"  class="">
			<constructor-arg  index="0"  type="java.lang.String"  value="aaa"> </constructor-arg>
			<constructor-arg  index="1"  type="cn.google.spring.di.constructor.Student"  ref="student_Con"> </constructor-arg>
		</bean>
		<bean  id="student_Con"  class=""></bean>

3、测试

		public  class  DITest  extends  SpringInit{
			@Test
			public   void  testSet(){
				Person  person = (Person)context.getBean("person_Con");
				s.o.p(person.getPname());
				s.o.p(person.getStu().student());
			}
		}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Bean的生命周期可以分为以下几个阶段: 1. 实例化(Instantiation):在该阶段,Spring容器根据配置信息或注解创建Bean的实例。这可以通过构造函数或工厂方法进行实例化。 2. 属性赋值(Population):在该阶段,Spring容器为Bean的属性赋值。这可以通过依赖注入(DI)或属性注入来完成。依赖注入是指通过构造函数、Setter方法或字段注入其他Bean的引用。 3. 初始化(Initialization):在该阶段,Spring容器对Bean进行初始化。这可以通过实现InitializingBean接口或在配置文件指定init-method方法来实现。在这个阶段,可以执行一些初始化操作,例如建立数据库连接、加载资源等。 4. 使用(In Use):在该阶段,Bean可以被正常使用。它可以被其他Bean引用,也可以执行一些业务逻辑。 5. 销毁(Destruction):在该阶段,Spring容器销毁Bean实例。这可以通过实现DisposableBean接口或在配置文件指定destroy-method方法来实现。在这个阶段,可以执行一些清理操作,例如关闭数据库连接、释放资源等。 需要注意的是,Spring容器并不管理所有Bean的生命周期。通常情况下,Spring只管理由容器实例化的单例Bean的生命周期。原型Bean的生命周期由客户端负责管理。 另外,还可以通过Bean后置处理器(BeanPostProcessor)来对Bean的生命周期进行自定义扩展。Bean后置处理器可以在Bean实例化、属性赋值、初始化等阶段进行一些额外的处理操作。例如,可以在Bean初始化之前进行一些自定义操作,或者在Bean销毁之前进行一些清理操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值