spring IOC容器的作用域

在Spring2.0中,Spring只为在每个IOC 容器中声明的bean创建一个实例,整个IOC容器范围内都能共享该实例,后续的getBean()和对bean的引用都将返回这个唯一的bean实例。该作用域被称作singleton,它是所有bean的默认作用域。

在 IOC容器中bean的作用域

singleton:在每个IOC容器中每个bean定义对应一个对象实例

prototype:原生,一个bean定义对应多个对象实例

request:在一个http请求中,一个bean定义对应一个实例,即每次http请求都将会有自己的bean实例

session:在一个http请求中,一个bean定义对应一个实例,该作用域仅在基于web的spring ApplicationContext情形下有效

 

============================

Spring中定制bean的初始化和销毁过程

Spring的IOC容器可以管理Bean的生命周期,容许bean在生命周期的特定点执行定制的任务

spring的IOC容器对bean的管理过程

通过构造器或者工厂方法创建bean实例

为bean的属性设置其他值和对其他bean的引用

调用bean的初始化方法

bean可以使用了

当容器关闭时,调用bean的关闭方法

==================================================

分离关注:将与业务无关的方法分离出去,就叫做分离关注

在利用注解进行分离关注的操作时,需要做两点

1.设置自动扫描的包

2.配置必须的bean后置处理器

@preConstructor:前置处理器

@postConstructor后置处理器

 

===================================================

外部化bean的配置

在xml配置文件中,有时需要在bean的内部混入一些系统部署的细节信息(如文件路径和数据源配置),而这些部署的细节实际上需要和bean相分离

spring提供了一个propertyPlaceHolderConfiurer的beanFactory的后置处理器,这个处理器容许用户将bean的配置部分内容移到属性文件中,可以在bean的配置文件里使用形式为

$(var)的变量,propertyPlaceHolderConfiurer从配置文件里加载属性,并利用这些属性替换这些变量

将需要配置的信息全部写到属性文件中

在xml的配置文件中只需要导入外部化的属性配置文件

这样做法是耦合度越小越好,

 

 

 

你可能感兴趣的