Spring Bean

一、Bean的实例化

1、构造方法实例化(最常用)

2、静态工厂实例化

在工厂类中创建一个静态方法来创建Bean实例。
class属性指定该类为静态工厂类,
factory-method属性指定静态方法

<!-- 静态工厂方法实例化bean -->
<bean id="" class="" factory-method=""/>

3、实例工厂实例化

在工厂类中创建一个实例方法来创建Bean实例。
factory-bean属性指定该类为静态工厂类,
factory-method属性指定实例方法

<!-- 配置工厂 -->
<bean id="myFactory" class=""/>
<!-- 使用factory-bean属性指定配置工厂,使用factory-method属性指定使用工厂中的哪个方法实例化bean -->
<bean id="" factory-bean="myFactory" factory-method=""/>

二、Bean的作用域

singleton :默认值,在spring容器仅存在一个Bean实例。
prototype:每次从容器中调用Bean时,都创建一个新的实例。
request:同一个HTTP请求共享一个Bean,仅在Web Spring上下文环境中使用。
session:同一个HTTP Session共享一个Bean。仅在Web Spring上下文环境中使用。
application:同一个ServletContext共享一个Bean。仅在Web Spring上下文环境中使用。

三、Bean的生命周期

创建(实例化:开辟空间。初始化:对属性的初始化)、使用、销毁
作用域singleton自动销毁。prototype创建后容器不再跟踪其生命周期

Spring Bean初始化和销毁

四、Bean的装配方式

1、基于xml配置

构造方法注入方式装配。需要提供有参构造方法。

<bean id="user1" class="assemble.xml.ComplexUser">
	<constructor-arg index="0" value=""/>
	<constructor-arg index="1">
		<list>
			<value></value>
			<value></value>
		</list>
	</constructor-arg>
	<constructor-arg index="2">
		<map>
			<entry key="" value=""/>
			<entry key="" value=""/>
		</map>
	</constructor-arg>
	<constructor-arg index="3">
		<set>
			<value></value>
			<value></value>
		</set>
	</constructor-arg>
	<constructor-arg index="4">
		<!-- 属性是数组时,list和array通用 -->
		<list>
			<value></value>
			<value></value>
		</list>
	</constructor-arg>
</bean>

属性的setter方法注入方式装配。
把替换为 。index属性替换为name属性即可。
需要提供无参构造方法。

2、基于注解

作用于类:
@Component
@Repository
@Service
@Controller

作用于成员变量、构造方法、方法:
@Autowired:可消除getter、setter方法。默认按类型装配。
@Qualifier:指定实例名。配合@Autowired,将按名称装配。
@Resource:与@Autowired相同,区别在于按名称装配。(name和type属性,默认name)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值