在做一个多线程的数据采集器实现的过程中,由于框架是集成srping,因此希望统一使用原有的数据库配置信息,但是需要手工获取数据库配置bean。我们可以通过继承ApplicationContextAwareSpring类,并实现一个能够读取所有配置的javabean。

 

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的上下文,必须实现以下两个步骤。

 

  • 首先必须在配置文件中配置该类

 

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

 

  • 其次SpringApplicationContextHolder必须继承ApplicationContextAware接口。在项目加载配置文件后,会自动调用ApplicationContextAware的setApplicationContext方法,讲上下文对象传递给使用者。
  • 调用方法

 

       AttenceService attenceService = SpringApplicationContextHolder.getBean(AttenceService.class);				
       attenceService.insertAttence(attenceList);

 

相关文章:

  • 2022-12-23
  • 2021-06-03
  • 2022-12-23
  • 2021-10-08
  • 2022-12-23
  • 2021-07-11
  • 2022-02-22
  • 2021-07-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-17
  • 2021-12-29
  • 2022-12-23
  • 2022-02-09
相关资源
相似解决方案