在启用线程中使用来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();
}
}
}
}

最新文章

  1. 自己用js实现全屏滚动
  2. Linux学习之让进程在后台可靠运行的方法详解
  3. CSS 制作三角形原理剖析
  4. STSdb,最强纯C#开源NoSQL和虚拟文件系统 4.0 RC2 支持C/S架构
  5. SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace)
  6. Swift 关键字汇总
  7. 读书笔记_Effective_C++_条款四十三:学习处理模板化基类的名称
  8. C# 实例化多线程组
  9. 18. 4Sum -- 找到数组中和为target的4个数
  10. [收藏]Spring Security中的ACL
  11. Python生成器与yield
  12. cloudstack安装篇1-linux命令修改IP信息
  13. struts2结合生成验证码
  14. C#执行javascript代码
  15. R语言做文本挖掘 Part5情感分析
  16. 最小生成树之Kruskal(克鲁斯卡尔)算法
  17. H5_0007:使用base64做为背景图片
  18. TCP-IP详解笔记6
  19. springboot Redis 缓存
  20. Nuxtjs初始

热门文章

  1. [译]The Python Tutorial#7. Input and Output
  2. 将Excel文件转为csv文件的python脚本
  3. I miss you, Jenny【我想念你,jenny】
  4. C++ vector 实例
  5. 6 json和ajax传递api数据
  6. Elastic Search和Kibana入门
  7. Java中BigInteger类型
  8. WEBs
  9. 图说不为人知的IT传奇故事-4-王安用一生来跟IBM抗衡
  10. 团队Alpha版本冲刺(一)