前言
欢迎大家来到我的博客,请各位看客们点赞、收藏、关注三连!
欢迎大家关注我的知识库,Java之从零开始·语雀
你的关注就是我前进的动力!
CSDN专注于问题解决的博客记录,语雀专注于知识的收集与汇总,包括分享前沿技术。
主体
问题描述:需求很简单,就是一个重新发布路由的事件,但是在一个业务逻辑处理后,调用重新发布路由的方法时,里面的所有注入bean,全部都变成了null,导致重新发布路由失败!
public class GatewayService implements ApplicationEventPublisherAware {
private ApplicationEventPublisher publisher;
@Override
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
this.publisher = applicationEventPublisher;
}
private void loadRouteConfig() {
this.publisher.publishEvent(new RefreshRoutesEvent(this));
}
}
类似于这上面的代码,而我在一个没有注入服务层的代码调用该类,结果就是无论如何都无法获取的注入的bean。
解决方案:在@Service层调用该方法.
@Service
public class Test{
@Resource
private GatewayServiceHandler gatewayServiceHandler;
// ...省略代码
gatewayServiceHandler.loadRouteConfig();
//...
}