zoukankan      html  css  js  c++  java
  • 解决Spring在线程中注入为空指针的问题

    在启用线程中使用来jdbcTemplate来查询数据库,引入jdbcTemplate是用Spring  @Autowired注解  方式引入,但是在运行中 jdbcTemplate 总是 空指针

    解决方法:

    定义一个静态获取Bean的类

    @Component
    public class SpringUtils implements ApplicationContextAware{  
        //Spring应用上下文环境
        private static ApplicationContext applicationContext;  
        /**
         * 实现ApplicationContextAware接口的回调方法,设置上下文环境
         */
        public void setApplicationContext(ApplicationContext applicationContext)  
                throws BeansException {  
            this.applicationContext = applicationContext;  
        }  
      
        public static ApplicationContext getApplicationContext(){  
            return applicationContext;  
        }  
          /**
         * 获取对象 这里重写了bean方法,起主要作用
         */
        public static Object getBean(String name) throws BeansException{  
            return applicationContext.getBean(name);  
        }  
    }

    线程类这样写:

    public class MyTread extends Thread{
            //不要使用 @Autowired
        private JdbcTemplate jdbcTemplate;
        public void run()  
        {  
            this.jdbcTemplate=  SpringUtils.getApplicationContext().getBean(JdbcTemplate.class); 
           while(true){
                ArrayList res = (ArrayList).this.jdbcTemplate.queryForList("写自己的sql语句");
                //延时功能
                try {
                    //延时两秒
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
           } 
        }
    }
  • 相关阅读:
    2. Git基础命令
    1.Git基础配置
    demo_49 大结局
    demo_48 上传图片实现
    demo_47 反馈图片选择功能实现
    demo_46 问题反馈页面实现
    gitlab +jenkins
    面试分析
    面试基础 一文件操作和程序进程
    man 命令帮助文档的使用
  • 原文地址:https://www.cnblogs.com/guoyinli/p/7152517.html
Copyright © 2011-2022 走看看