java多线程中注入Spring对象问题

web应用中java多线程并发处理业务时,容易抛出NullPointerException。

原因:

线程中的Spring Bean没有被注入。web容器在启动时,没有提前将线程中的bean注入,在线程启动之前,web容器是无法感知的。

解决方案:

方法一、在声明成员变量的时候,将其定义为static的。(据说不可行)

方法二、将线程设置为主程序的内部类。

    在外部类中注入bean,这样在内部类线程中就可以“共享”这个对象。

方法三、定义一个工具类,使用静态工厂方法通过getBean获得bean对象。

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。