Spring多线程注入问题

    技术2022-06-27  97

    在用多线程的时候,里面要用到Spring注入服务层,或者是逻辑层的时候,一般是注入不进去的。具体原因应该是线程启动时没有用到Spring实例池。所以注入的变量值都为null。

    如果在run方法里面加载application.xml,来取得bean时,由于重复加载,一般情况下会耗尽内存,抛出内存溢出错误。所以这的确是一个很头痛的问题。

    有一个方法可以解决注不进去的问题。就是在声明变量的时候,前面加static。这样在初始化的时候它就会加载application.xml,得到bean。

    关于这个问题的根本机制没有作深入的研究,好在问题解决了。

    从这个例子体会到林信良说过的,没有一个技术是完美的,不要为了Spring而Spring。不要为了注入而注入。

     

    http://hi.baidu.com/adrianbutler/blog/item/2e8109f080acec63dcc47441.html

     

    像下面这样,问题就解决了。

     

    private static CustomerchangeService customerchangeService; 

     public CustomerchangeService getCustomerchangeService() {  return customerchangeService; }

     public void setCustomerchangeService(   CustomerchangeService customerchangeService) {  CustomerchangeThread.customerchangeService = customerchangeService; }

     


    最新回复(0)