spring的@Autowired注入无法实例化service问题解决(netty处理类无法实例化service)


  首先目前我写的项目是springboot+netty,在接收客户端传输的数据时调用service一直报null指针异常

  刚开始没有想到是service无法实例化的问题,一直在测试数据方面的问题,后来去群里讨论才知道问题所在

  我这里讲的netty接收数据的handler类,但是基本都大同小异
  如果我们直接在一个不是controller类的里面注入@Autowired的时候,而且还去调用就会报null指针

  spring的@Autowired注入无法实例化service问题解决(netty处理类无法实例化service)
spring的@Autowired注入无法实例化service问题解决(netty处理类无法实例化service)像这样如果直接调用的话就会报错

下面来说怎么解决
首先需要了解两个注解 @Component  跟 @PostConstruct
spring注解中@component就是说把这个类交给Spring管理因为不清楚这个类是属于哪个层面,所以就用@Component
@PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。

spring的@Autowired注入无法实例化service问题解决(netty处理类无法实例化service)
如上图所示 加上关键步骤,之后通过下图调用,调用service就不会报null了
spring的@Autowired注入无法实例化service问题解决(netty处理类无法实例化service)

这样就解决了无法实例化service的问题。