我有一个类 UserService 实现了 Service 并用 Service StereoType 进行了注释,我正在使用 Spring AOP 并且想要为此做临时解决方法(我知道这可以用更好的方式来完成)
@Service
public class UserService implements Service{
@Autowired
private Service self;
}
我尝试了这个,但得到了 BeanNotFoundException,我错过了什么吗?
我知道我必须使用 AspectJ 和 @Configurable 但只是寻找一些临时解决方法
你到底为什么需要这样做?在任何需要引用当前实例的方法中,即self
你只需使用this
关键词。
我们错过了什么吗?如果您还想做其他事情,请尝试澄清您的问题,我们会尽力解决。
如果您想知道,这不起作用,因为在完全构造 bean 之前无法注入它 --> 这意味着 Spring 必须注入 bean 的所有属性。实际上,您所做的就是创建了一个循环依赖关系,因为 Spring 尝试实例化 bean,当它实例化时,它发现它需要Autowire
另一个豆子。当它尝试找到该 bean 时却找不到,因为该 bean 尚未添加到已初始化 bean 列表中(因为它当前正在初始化)。那有意义吗?这就是为什么你得到BeanNotFoundException
因为bean无法初始化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)