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

原因:

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

解决方案:

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

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

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

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

 

 

posted on 2015-04-15 21:01  独_行_侠  阅读(1115)  评论(1编辑  收藏  举报