ActiveMQ queue为null,有消费者队列,没有生产者

Spring注入失败问题
我出现这个问题是线程结合spring 出现无法注入问题
在线程启动之前 可以通过反射 把 queue注入 spring

public static JmsMessagingTemplate jmsMessagingTemplate;
    public static Queue queue;
    private static ExecutorService pools = null;
    public static void start() {
        StartRunner.queue = (Queue)ApplicationContextProvider.getBean(Queue.class);
        StartRunner.jmsMessagingTemplate = (JmsMessagingTemplate)ApplicationContextProvider.getBean(JmsMessagingTemplate.class);

获取bean 工具类

/*/**
 *
 * 功能描述: 获取bean对象的工具类
 *
 * @param:
 * @return:
 * @auther: zzp
 * @date: 2019/3/8 14:04
 */
@Configuration
public class ApplicationContextProvider implements ApplicationContextAware {
    /**
     * 上下文对象实例
     */
    private static ApplicationContext applicationContext;

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

    /**
     * 获取applicationContext
     *
     * @return
     */
    public static ApplicationContext getApplicationContext() {
        return applicationContext;
    }

    /**
     * 通过name获取 Bean.
     *
     * @param name
     * @return
     */
    public static Object getBean(String name) {
        return getApplicationContext().getBean(name);
    }

    /**
     * 通过class获取Bean.
     *
     * @param clazz
     * @param
     * @return
     */
    public static Object getBean(Class clazz) {
        return getApplicationContext().getBean(clazz);
    }

    /**
     * 通过name,以及Clazz返回指定的Bean
     *
     * @param name
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T getBean(String name, Class<T> clazz) {
        return getApplicationContext().getBean(name, clazz);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_44051136/article/details/88558344