首先目前我写的项目是springboot+netty,在接收客户端传输的数据时调用service一直报null指针异常
刚开始没有想到是service无法实例化的问题,一直在测试数据方面的问题,后来去群里讨论才知道问题所在
我这里讲的netty接收数据的handler类,但是基本都大同小异 如果我们直接在一个不是controller类的里面注入@Autowired的时候,而且还去调用就会报null指针
像这样如果直接调用的话就会报错
下面来说怎么解决 首先需要了解两个注解 @Component 跟 @PostConstruct spring注解中@component就是说把这个类交给Spring管理, 因为不清楚这个类是属于哪个层面,所以就用@Component。 @PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。
如上图所示 加上关键步骤,之后通过下图调用,调用service就不会报null了
这样就解决了无法实例化service的问题。
@Value注解取不到值,比如GameServerHandler中有如下属性,但是使用value注解注入不进去,只能通过GameServerHandler.name去取值
@Value(${server.name})
private String name;