Spring中bean的生命周期和Bean的装配

Spring中bean的生命周期:

① 实例化(当我们的程序加载beans.xml文件),把我们的bean(前提是scope=singleton)实例化到内存

② 调用set方法设置属性

③ 如果你实现了bean名字关注接口(BeanNameAware) 则,可以通过setBeanName获取id

④ 如果你实现了 bean工厂关注接口,(BeanFactoryAware),则可以获取BeanFactory

⑤ 如果你实现了 ApplicationContextAware接口,则调用方法 

//该方法传递ApplicationContext

public void setApplicationContext(ApplicationContext arg0)

throws BeansException {

// TODO Auto-generated method stub

System.out.println("setApplicationContext"+arg0);

}

⑥ 如果bean 和 一个后置处理器关联,则会自动去调用 Object postProcessBeforeInitialization方法

⑦ 如果你实现InitializingBean 接口,则会调用 afterPropertiesSet

⑧ 如果自己在<bean init-method=”init” /> 则可以在bean定义自己的初始化方法.

⑨ 如果bean 和 一个后置处理器关联,则会自动去调用 Object postProcessAfterInitialization方法

⑩ 使用我们的bean


11. 容器关闭

12. 可以通过实现DisposableBean 接口来调用方法 destory

13. 可以在<bean destory-method=”fun1”/> 调用定制的销毁方法

 

小结我们实际开发中往往,没有用的这么的过程,常见的是:

1->2->6->10->9->11 


Bean的装配

① 如何给集合类型注入值.

java中主要的集合有几种: map set list / 数组 

<bean id="department" class="com.hsp.collection.Department">

<property name="name" value="财务部"/>

<!-- 给数组注入值 -->

<property name="empName">

<list>

<value>小明</value>

<value>小明小明</value>

<value>小明小明小明小明</value>

</list>

</property>

<!-- list注入值 list 中可以有相当的对象 -->

<property name="empList">

<list>

<ref bean="emp2" />

<ref bean="emp1"/>

<ref bean="emp1"/>

<ref bean="emp1"/>

<ref bean="emp1"/>

<ref bean="emp1"/>

<ref bean="emp1"/>

</list>

</property>

<!-- set注入值 set不能有相同的对象 -->

<property name="empsets">

<set>

<ref bean="emp1" />

<ref bean="emp2"/>

<ref bean="emp2"/>

<ref bean="emp2"/>

<ref bean="emp2"/>

</set>

</property>

<!-- map注入值 map只有key不一样,就可以装配value -->

<property name="empMaps">

<map>

<entry key="11" value-ref="emp1" /> 

<entry key="22" value-ref="emp2"/>

<entry key="33" value-ref="emp1"/>

</map>

</property>

<!-- 给属性集合配置 -->http协议 referer 】

<property name="pp">

<props>

<prop key="pp1">abcd</prop>

<prop key="pp2">hello</prop>

</props>

</property>

</bean>

<bean id="emp1" class="com.hsp.collection.Employee">

<property name="name" value="北京"/>

<property name="id" value="1"/>

</bean>

<bean id="emp2" class="com.hsp.collection.Employee">

<property name="name" value="天津"/>

<property name="id" value="2"/>

</bean>

</beans>






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值