在服务中对Java中的所有方法使用@Before [duplicate]

1hdlvixo  于 2022-12-10  发布在  Java
关注(0)|答案(2)|浏览(155)

此问题在此处已有答案

Lifecycle method of spring bean after bean is created(2个答案)
3小时前关门。
我正在用java为我的控制器实现一个service。这个服务用几个方法实现一个接口,其中每个方法执行不同的逻辑。(他们必须调用另一个@服务)我想知道是否有任何方法来重构这个,也就是说,删除它们与我服务的类中的一个方法的公共逻辑,该方法在开始时只执行一次。
我正在寻找类似于以下内容的内容:

public class myClass implements myInterface{

private String stringToFill="";

@Before
public doSomeLogig(){
   // call another service
   stringToFill = "filled";
}

public getAll(){
   ...
   //here I should use stringToFill, with value 'filled'
}
public getId(){
   //here I should use stringToFill, with value 'filled'
   ...
}
public create(){
   //here I should use stringToFill, with value 'filled'
   ...
}

}

x7rlezfr

x7rlezfr1#

有一个名为@PostConstruct的spring生命周期注解,在类中编写一个方法,并在此方法中添加所有一次性执行逻辑,然后使用@PostConstruct注解对其进行注解,一旦Bean初始化,spring将自动调用此方法。

dced5bon

dced5bon2#

使用AOP,你可以在很多不同的场景中调用一个方法,包括你所描述的场景。

@Aspect
public class BeforeExample {

  @Before("com.xyz.myapp.SystemArchitecture.dataAccessOperation()")
  public void doAccessCheck() {
    // ...
  }

}

您还可以定义一个自定义注解,如@Before,为您做魔术。

相关问题