美文网首页
Spring boot里面线程类里面调用service

Spring boot里面线程类里面调用service

作者: 黛雨 | 来源:发表于2017-09-01 15:52 被阅读0次

    用model、service和controller实现了从数据查询数据的功能后,想要在普通线程类里面调用service的方法过程中就遇到一系列的问题。下面挨个做些笔记,以防下次遇到。

    1.普通类里面调用service

    网上搜资料  查到一种可行的方法,如下:

    http://blog.csdn.net/u011385445/article/details/49305519

    总结出来就是要先建立一个工具类SpringUtil,这个工具类实现了接口ApplicationContextAware ,然后在代码里写上application的get set方法,方便我们去获取我们想要的bean。       具体的代码 请参考上面博客内容。

    2.使用上面的方法是出现的问题

    在使用过程中一直在报application为null的错误  经过反复考虑 测试 。发现原因,是因为我的项目入口类实现了 InitializingBean接口,然后将调用线程类的语句写在了afterPropertiesSet()方法里面。而InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候会执行该方法。所以意味着在application还没有初始化的时候,已经被调用了 所以导致一直报空指针异常。

    那对于这样的问题该怎么解决呢?

    3.解决执行顺序的问题

    在项目入口里面,在afterPropertiesSet()方法前面注入service,然后将此service作为参数,传到线程类里面,再次执行程序的时候发现一切都正常了!

    4.直觉告诉我还有更好的方法  可以解决这个问题 ,留着以后慢慢发现!

    相关文章

      网友评论

          本文标题:Spring boot里面线程类里面调用service

          本文链接:https://www.haomeiwen.com/subject/tpqkjxtx.html