spring初始化加载InitializingBean

最近在为公司一个创新项目,其中用到spring的初始技术,先做一个总结。
spring初始化bean有两种方式:
第一:实现InitializingBean接口,继而实现afterPropertiesSet的方法
第二:反射原理,配置文件使用init-method标签直接注入bean

<bean id="testInitializingBean" class="com.TestInitializingBean" init-method="testInit">bean>

不同点:
接口比配置效率高,但是配置消除了对spring的依赖。

这里详解如何使用接口方式实现spring初始化bean。

第一步:新建测试类TestGate,其中Intent是一个接口,有几个实现类就会被初始化几个实例

@Component//代表将这个类注入spring容器中
public class TestGate implements InitializingBean,ApplicationContextAware {

    private ApplicationContext applicationContext;
//实现afterPropertiesSet,可以写初始化bean
    @Override
    public void afterPropertiesSet() throws Exception {
          Map map= applicationContext.getBeansOfType(Intent.class);
    }
//使用ApplicationContextAware实现spring上下文对象初始化赋值
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        this.applicationContext=applicationContext;
    }
}

二、通过@component将TesGate注入spring容器中或者使用

id="testGate" class=""/>

三、web.xml文件配置监听

  
    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>  
    listener>  

四、在项目中可以获得接口intent的几个实现类bean对象
spring初始化加载InitializingBean_第1张图片

你可能感兴趣的:(web框架之spring)