1. 程式人生 > >spring初始化載入InitializingBean

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<String,Intent> map= applicationContext.getBeansOfType(Intent.class);
    }
//使用ApplicationContextAware實現spring上下文物件初始化賦值
@Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.applicationContext=applicationContext; } }

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

<bean id="testGate" class=""/>

三、web.xml檔案配置監聽

<!-- 初始化Spring容器,讓Spring容器隨Web應用的啟動而自動啟動 -->
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>

四、在專案中可以獲得介面intent的幾個實現類bean物件
這裡寫圖片描述