spring初始化載入InitializingBean
阿新 • • 發佈:2018-12-24
最近在為公司一個創新專案,其中用到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物件