java无法将服务自动连接到AsyncUncaughtExceptionHandler的实现中
我的弹簧自动接线有问题。我有一个实现AsyncUncaughtExceptionHandler的类
@Component
public class MyExceptionHandler implements AsyncUncaughtExceptionHandler {
@Autowired
MyService myService;
@Override
public void handleUncaughtException(Throwable throwable, Method method, Object... obj) {
if (throwable instanceof MyException) {
myService.handleException((MyException) throwable);
} else {
//...
}
}
当代码运行到调用myService的地方时,当myService为null时抛出null指针。MyService在其他地方自动连接,没有任何问题,只有AsyncUncaughtExceptionHandler实现中的自动连接似乎会导致问题
@Service
public class MyService {
public void handleException(MyException e) {
//...
}
}
我已经讨论了一些有关StackOverflow的问题,这些问题解决了类似的问题。这些问题是由代理机制引起的,但我没有设法使代码正常工作。此外,我不确定这是否是问题所在
感谢您的帮助。提前谢谢
# 1 楼答案
您还需要将
MyExceptionHandler
标记为bean:# 2 楼答案
这里发生的是
@ComponentScan
请参阅并初始化新线程)李>@ComponentScan
没有处理它? 组件扫描主要是扫描一部分包和 服务可以在不同的包中定义李>解决方案: 使用
@ApplicationScope
注释创建服务bean应用程序范围# 3 楼答案
实际上,在配置asyncExceptionHandler时,我犯了一个错误
必须改变这一点:
对此:
新手犯了个错误,但我很长时间都找不到