我可以使用Spring注入相同的类吗?

Pre*_*raj 3 java spring

我有一个类说UserService,它实现了Service并使用Service StereoType进行了注释,我正在使用Spring AOP并希望为此做临时解决方法(我知道这可以用更好的方式完成)

@Service
public class UserService implements Service{
   @Autowired
   private Service self;
}
Run Code Online (Sandbox Code Playgroud)

我试过这个但是得到了BeanNotFoundException,我错过了什么吗?

我知道我必须使用带有@Configurable的AspectJ,但只是寻找一些临时的解决方法

Chr*_*son 6

为什么你需要这样做?在您需要引用当前实例的任何方法中,即self您只需使用this关键字.

我们错过了什么吗?如果您正在尝试做其他事情,请尝试澄清您的问题,我们将采取措施.

如果您想知道,这不起作用,因为在完全构造之前不能注入bean - >这意味着Spring必须注入bean的所有属性.实际上,你所做的就是创建一个循环依赖,因为Spring试图实例化bean,当它发生时,它会发现它需要Autowire另一个bean.当它试图找到那个bean时它不能,因为bean还没有被添加到初始化的bean列表中(因为它当前正在被初始化).那有意义吗?这就是你得到的BeanNotFoundException原因,因为bean无法初始化.

  • @Chris-Thompson我理解但是自我调用不适用于基于Spring代理的AOP方法,我想在AOPContext.getCurrentProxy()旁边进行一些解决方法..我知道这不起作用但是想知道原因 (2认同)
  • @Premraj M啊,我明白了。根据我的解释,您了解为什么它不起作用吗? (2认同)