Spring中多线程注入SqlService注不进去显示sqlService为null错误Spring中多线程注入SqlService注不进去显示sqlService为null错误
Spring中多线程注入SqlService注不进去,显示sqlService为null异常
Java code
public class AutoRun implements Runnable {
@Resource
private SqlService sqlService;
public void setSqlService(SqlService sqlService) {
this.sqlService = sql...
Spring中多线程注入SqlService注不进去显示sqlService为null错误
Spring中多线程注入SqlService注不进去,显示sqlService为null异常
Java code
public class AutoRun implements Runnable {
@Resource
private SqlService sqlService;
public void setSqlService(SqlService sqlService) {
this.sqlService = sqlService;
}
public void run() {
while (true) {
try {
String a = new Date().toLocaleString();
sqlService.read( select ' +a+ ' from dual );
System.out.println(a);
Thread.sleep(100);// 休眠2分钟
} catch (InterruptedException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Spring中多线程注入SqlService注不进去,显示sqlService为null异常,而在普通Action
中可以注入,请问这是为什么,
------解决
--------------------------------------------------------
往线程类中注入....
会不会是你注入之前,该线程类的实例就已经生成了呢,或者说是该线程类实例生成时,sql
service实例还没有生成,
sql service实例化---AutoRun 实例化----注入----访问AutoRun.sqlService,这个过程你
再琢磨一下,看看你是否按照这个顺序,
------解决方案--------------------------------------------------------
public void setSqlService(SqlService sqlService) {
this.sqlService = sqlService;
}
是不是要放在run的里面呀
------解决方案--------------------------------------------------------
用这个:
探讨
引用:
23楼:
lz不会是先让线程转起来,再set的吧,
不是这样的
25楼:
肯定是线程启动时,没有使用到spring的容器,,,因为线程没有通过spring容器,所以也
就找不到service,故为NUll
这个问题么样处理
Java code
//得到容器
ApplicationContext con……
------解决方案--------------------------------------------------------
探讨
启动:
Java code
AutoRun workSyp = new AutoRun();
Thread work = new Thread(workSyp);
work.start();
本文档为【Spring中多线程注入SqlService注不进去显示sqlService为null错误】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。