1. 错误场景
使用netty重新socket服务端代码时,遇到Handler处理业务逻辑时注入Service为null问题。
2. 解决方法
- 在 Handler 类上添加
@Component
注解,如图 2.1 所示。
- 静态初始化当前类,如图 2.2 所示。
- 使用
@PostConstruct
初始化当前类。
// 在方法上加上注解@PostConstruct,这样方法就会在Bean初始化之后被Spring容器执行
// 通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
// (注:Bean初始化包括,实例化Bean,并装配Bean的属性(依赖注入))。
@PostConstruct
public void init(){
myServerHandler = this;
}
- 使用当前类调用Service容器的方法,如图 2.3 所示。