Spring-context
spring框架中主要有四种标签bean、alias、import、beans。其中bean标签是其他标签的基础,下面主要对bean标签的属性及其子元素进行讨论。
一、bean标签的属性
-
scope:用来配置spring bean的作用域
-
singleton:表示bean为单例的
-
abstract:设置为true,将该bean仅仅作为模板使用,应用程序上下文不会试图预先初始化它
-
lazy-init:设为true,延迟加载,该bean不会在ApplicationContext启动时提前被实例化,而是第一次向容器通过getBean索取bean时实例化
注:只对singleton的bean起作用 -
autowire:自动装配
-
dependency-check:依赖检查
-
depends-on:表示一个bean的实例化依靠另一个bean先实例化
-
autowire-candidate:设为false,容器在查找自动装配对象时,将不考虑该bean,即它不会被考虑作为其他bean自动装配的候选者,但是该bean本身可以使用自动装配来注入其他bean
-
primary:该bean优先被注入
-
init-method:初始化bean时调用的方法
-
destory-method:容器销毁之前所调用的方法
-
factory-method:当调用factory-method所指向的方法时,才开始实例化bean
-
factory-bean:调用静态工厂方法的方式创建bean
二、bean的子元素
-
meta:元数据,当需要使用里面的信息时可以通过key获取
-
lookup-method:获取器注入,是把一个方法声明为返回某种类型的bean但实际要返回的bean是在配置文件里面配置的
-
replaced-method:可以在运行时调用新的方法替换现有的方法,还能动态的更新原有方法的逻辑
-
constructor-arg:对bean自动寻找对应的构造函数,并在初始化的时候将设置的参数传入进去
-
property:属性赋值,详细:http://www.cnblogs.com/chenssy/archive/2013/03/17/2964593.html
-
qualifier:通过Qualifier指定注入bean的名称
三、关于容器的一些设计
lookup-method
设计可插拔方式返回一个对象,在bean中配置即可。bean不持有对象,但是可以获取到对象,执行一些操作。
FactoryBean
用来创建bean, 引入其他框架时,比如spring-mybatis时,使用SqlSessionFactoryBean来构建SqlSessionFactory.
如果实现需要实现以下接口: FactoryBean, InitializingBean, ApplicationListener
beanPostProcessor
后置处理器,容器完成初始化后需要自己完成的一些操作。
bean对容器的感知
- BeanNameAware 可以在Bean中得到他在IOC容器中的bean实例名称。
- BeanFactoryAware 得到Ioc容器Beanfactory对象
- ApplicationContextAware 得到容器ApplicationContext对象
- MessageSourceAware 在bean中可以得到消息源
- ApplicationEventPublishAware
- ResourceLoaderAware
浙公网安备 33010602011771号