业务场景:业务实现类 SyncServiceImpl.java中,func1加了注解@Async ,func2没有加,项目启动后,其他类使用beanFactory.getBean(SyncServiceImpl.class) 获取该业务实现类 ,抛出异常:no qualified bean of type ;
@EnableAsync 和 @Service 注解都已经添加了,同事反映去掉后加的@Async 注解后就不会报错
怎么样更改获取javabean 的方式才能解决这个bug呢
可以使用 ApplicationContext
添加 @Async
注解后 Spring 会给注解所在类创建代理对象,如果 SyncServiceImpl
实现了接口,则代理对象只会实现 SyncServiceImpl
所实现的接口,假定 SyncServiceImpl
的接口为 SyncService
并且该接口只有一个实现类,你可以通过 beanFactory.getBean(SyncService.class)
的方式获取 bean。最后如果有帮忙,麻烦动动小手点个采纳。