經過ApplicationContextAwareSpring實現手工加載配置的javabean

        在作一個多線程的數據採集器實現的過程當中,因爲框架是集成srping,所以但願統一使用原有的數據庫配置信息,可是須要手工獲取數據庫配置bean。咱們能夠經過繼承ApplicationContextAwareSpring類,並實現一個可以讀取全部配置的javabean。html

 

public class SpringApplicationContextHolder implements ApplicationContextAware {

    private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext)
            throws BeansException {
        SpringApplicationContextHolder.applicationContext = applicationContext;
    }

    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    public static Object getBean(String beanName) {
        return applicationContext.getBean(beanName);
    }

    public static <T> T getBean(String beanName, Class<T> clazz) {
        return applicationContext.getBean(beanName, clazz);
    }

    public static <T> T getBean(Class<T> clazz) {
        return applicationContext.getBean(clazz);
    }
}

      要實現上述代碼可以得到spring的上下文,必須實現如下兩個步驟。java

 

  • 首先必須在配置文件中配置該類

 

	<bean class="com.attence.frame.SpringApplicationContextHolder" />

 

  • 其次SpringApplicationContextHolder必須繼承ApplicationContextAware接口。在項目加載配置文件後,會自動調用ApplicationContextAware的setApplicationContext方法,講上下文對象傳遞給使用者。
  • 調用方法

 

       AttenceService attenceService = SpringApplicationContextHolder.getBean(AttenceService.class);				
       attenceService.insertAttence(attenceList);
相關文章
相關標籤/搜索