今天把之前Netty的代码整合到了Springboot中。(之前代码:https://blog.csdn.net/qq_38494341/article/details/88105312)
在ServerHandler中我直接调用了service层的保存数据方法,直接给我报了空指针,当时是一脸懵逼。后来度娘了知道,原来是没有被注入,看了这篇博客才解决了问题,最后数据就可以存进数据库了。
解决代码:
@Component
public class ServerHandler extends IoHandlerAdapter {
@Autowired
protected HealthDataService healthDataService;
private static ServerHandler serverHandler ;
@PostConstruct //通过@PostConstruct实现初始化bean之前进行的操作
public void init() {
serverHandler = this;
serverHandler.healthDataService = this.healthDataService;
// 初使化时将已静态化的testService实例化
}
//测试调用
public void test(){
serverHandler .healthDataService.<你的service层方法>;
}
地址:https://blog.csdn.net/georgeshaw1/article/details/74943089
总结转自上面那篇博客:
将需要调用Spring的Service层的类通过@Component注解为组件加载;
同样通过@Autowired获取Service层的Bean对象;
为类声明一个静态变量,方便下一步存储bean对象;
划重点:通过注解@PostConstruct ,在初始化的时候初始化静态对象和它的静态成员变量healthDataService,原理是拿到service层bean对象,静态存储下来,防止被释放。