Spring中 的Bean
Bean的实例化的三种方式
1).无参数构造(常用)
Bean类提供无参数构造

2).静态工厂方法


3).实例工厂方法.
需要创建一个工厂类,在工厂类中提供一个非static的创建bean对象的方法,在配置文件中需要将工厂配置,还需要配置bean


Bean的作用域
bean的scope属性描述作用域:
1) singleton:单例 代表在spring ioc容器中只有一个Bean实例 (默认的scope)
2) prototype多例 每一次从spring容器中获取时,都会返回一个新的实例
3) request 用在web开发中,将bean对象request.setAttribute()存储到request域中
4) session 用在web开发中,将bean对象session.setAttribute()存储到session域中
Bean的生命周期
我们需要关心的是两个方法:
1.增强Bean的功能使用后处理的Bean,BeanPostProcessor
2.如果需要初始化和销毁操作,使用init-method和destroy-method
注意:destroy-method 只在scope=singleton单例中有效.
Bean的属性注入
1).构造器注入

2).setter注入

使用ref来引入另一个bean,完成bean之间的注入

3)集合属性注入
1> list 和数组注入

2> set属性注入

3>Map属性注入

4>properties属性注入:
Java.util.Properties是java.utilsMap的实现类,它的key与value都是String类型.

名称空间p和c的使用
它们是虚拟的,嵌入到Spring的内核中
使用p名称空间可以解决我们setter注入时<property>简化
使用c名称空间可以解决我们构造器注入时<constructor-arg>简化 .
这是setter的注入
这是p名称空间简化版
如果c或p名称空间操作的属性后缀是”-ref”代表要引入另一个已经存在的bean,

浙公网安备 33010602011771号