在作一个多线程的数据采集器实现的过程当中,因为框架是集成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);