zoukankan      html  css  js  c++  java
  • 线程中调用service 处理具体的业务

      线程中调用service 处理具体的业务,在多线程时使用@Autowired总是获取不到bean,原因是:new thread不在spring容器中,也就无法获得spring中的bean对象。

      线程入口,直接写个main方法执行的,运行则获取不到service。需要在 SpringBootApplication 中启动。

       

    /******************************************* BeanContext 类 *******************/
    /*************************************用静态方法直接取的容器中的spring对象*****************/
    import org.springframework.beans.BeansException;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.ApplicationContextAware;
    import org.springframework.stereotype.Component;

    @Component
    public class BeanContext implements ApplicationContextAware {

    // Spring应用上下文环境
    private static ApplicationContext applicationContext;

    /*
    * 实现了ApplicationContextAware 接口,必须实现该方法;
    * 通过传递applicationContext参数初始化成员变量applicationContext
    */
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
    BeanContext.applicationContext = applicationContext;
    }

    public static ApplicationContext getApplicationContext(){
    return applicationContext;
    }

    @SuppressWarnings("unchecked")
    public static <T> T getBean(String name) throws BeansException {
    return (T)applicationContext.getBean(name);
    }

    public static <T> T getBean(Class<T> clz) throws BeansException {
    return (T)applicationContext.getBean(clz);
    }
    }
    /******************************************* TestHandler 类 *******************/
     

    
    

      

  • 相关阅读:
    android购物车的实现
    eclipse配置maven
    Android 高仿微信实时聊天 基于百度云推送
    如何使用Ubuntu online account API创建微博HTML5申请书
    C#创建和初始化类
    一个小的日常实践——距离阵列
    文本框中输入极限
    java阅读器hdfs单纯demo
    错误和问题解决的成本
    选择用户-保存选定的用户
  • 原文地址:https://www.cnblogs.com/bianchengxia/p/9240376.html
Copyright © 2011-2022 走看看