(4) Spring bean

实例化

1.使用类构造器实例化
<bean id="orderService" class="cn.itcast.OrderServiceBean"/>
2.使用静态工厂方法实例化
<bean id="personService" class="cn.itcast.service.OrderFactory" factory-method="createOrder"/>
public class OrderFactory {
public static OrderServiceBean createOrder(){
return new OrderServiceBean();
}
}
3.使用实例工厂方法实例化:
<bean id="personServiceFactory" class="cn.itcast.service.OrderFactory"/>
<bean id="personService" factory-bean="personServiceFactory" factory-method="createOrder"/>
public class OrderFactory {
public OrderServiceBean createOrder(){
return new OrderServiceBean();
}
}
 

作用域

不配置默认为singleton

.singleton
在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,但我们可以指定Bean节点的lazy-init="true"来延迟初始化bean,这时候,只有第一次获取bean会才初始化bean。如:
<bean id="xxx" class="cn.itcast.OrderServiceBean" lazy-init="true"/>
如果想对所有bean都应用延迟初始化,可以在根节点beans设置default-lazy-init="true",如下:
<beans default-lazy-init="true" ...>

 

指定Bean的初始化方法和销毁方法
<bean id="xxx" class="cn.itcast.OrderServiceBean" init-method="init" destroy-method="close"/>

 

 

依赖注入

 

基本类型对象注入:
<bean id="orderService" class="cn.itcast.service.OrderServiceBean">
<constructor-arg index="0" type="java.lang.String" value="xxx"/>//构造器注入
<property name="name" value="zhao/>//属性setter方法注入
</bean>
注入其他bean:
方式一

方式二(使用内部bean,但该bean不能被其他bean使用)

集合

 

 

使用构造器注入
使用属性setter方法注入
使用Field注入(用于注解方式)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

阅读更多
个人分类: Frame_spring
上一篇(3)Spring 测试搭建环境
下一篇(5) Spring 注解
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭