为什么要在Spring中使用self类?

时间:2019-04-30 07:11:58

标签: java spring

在有或没有Spring的self.method中使用self类是规则吗? 例如,我有

public class MyClass{
    private Class1 class1;
    private Class2 class2;
    private MyClass self;

    public void myMethod(){

        self.makeThing();
    }

    public void makeThing(){}
}

那么,为什么不只是制作makeThing()而是self.makeThing()呢?

1 个答案:

答案 0 :(得分:7)

在Spring的上下文中,如果要触发AOP类,则需要将一个bean注入自身。

class MyClass {
   @Resource
   MyClass self;

   public void doSomething() {
       // This will NOT trigger the AOP associated with @SomeAnnotation
       this.doSomethingElse();

       // This will trigger the AOP associated with @SomeAnnotation
       self.doSomethingElse();
   }

   @SomeAnnotation
   public void doSomethingElse() {
       ...
   }
}