非controller类使用@Autowired/@Resource注解注入Service为null

1. 错误场景

使用netty重新socket服务端代码时,遇到Handler处理业务逻辑时注入Service为null问题。

2. 解决方法

  1. 在 Handler 类上添加 @Component 注解,如图 2.1 所示。
    在这里插入图片描述
[ 图 2.1 ]
  1. 静态初始化当前类,如图 2.2 所示。
    在这里插入图片描述
[ 图 2.2 ]
  1. 使用 @PostConstruct 初始化当前类。
	// 在方法上加上注解@PostConstruct,这样方法就会在Bean初始化之后被Spring容器执行
	// 通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
    // (注:Bean初始化包括,实例化Bean,并装配Bean的属性(依赖注入))。
    @PostConstruct
    public void init(){
        myServerHandler = this;
    }
  1. 使用当前类调用Service容器的方法,如图 2.3 所示。
    在这里插入图片描述
[ 图 2.3 ]
发布了56 篇原创文章 · 获赞 3 · 访问量 2169

猜你喜欢

转载自blog.csdn.net/weixin_43960684/article/details/104791389