0. bean的配置形式:基于XML文件的配置方式,基于注解的方式。
bean的配置方式:通过全类名(反射),通过工厂方法(静态工厂方法&实例工厂方法),FactoryBean。
1.spring中的bean的作用域的配置:
使用scope来配置bean的作用域:两种情况scope=singleton和scope=prototype
第一种:singleton 默认值,当容器初始时创建bean的实例,在整个容器的生命周期内只创建这一个bean,单例的;
第二种:prototype 原型的,容器初始化时不创建bean的实例。而在每次请求的时候都创建一个新的bean的实例,并返回;与struts2整合的时候的action用此种模式。
2.spring的IOC对bean生命周期的管理:
通过构造器或工厂方法创造Bean的实例;
为bean的属性设置值和对其他bean的引用;
将bean的实例换递给bean的后置处理器的postProcessBeforeInitlization方法
调用bean的初始化方法 ;
将bean的实例传递给bean的后置处理器的postProcessAfterInitlization方法;
使用bean;
当容器关闭时候,调用bean的销毁方法。
在bean的声明中设置 init-method 和destory-method属性,为bean指定初始化和销毁方法。
配置如下:
3.关于组件扫描:
当在组件类上使用的特定的注解后,还要在Sprng的配置文件中声明<context:component-scan>
-base-package属性指定一个需要扫描的基类包,Spring容器将会扫描到这个基类包里及其子包里的所有类;
- 当需要扫描多个包时可以使用逗号分隔;
-如果仅希望扫描特定的类而非基包下的所有类,可以使用resource-pattern属性过滤特定的类:
示例代码:
<context:component-scan
base-package="com.atdy.spring.beans"
resource-pattern="autowire/*.class"
>