在作一個多線程的數據採集器實現的過程當中,因爲框架是集成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" />
AttenceService attenceService = SpringApplicationContextHolder.getBean(AttenceService.class); attenceService.insertAttence(attenceList);