在服务类 Spring boot 中跨多个方法共享变量的正确方法

问题描述 投票:0回答:1

我正在寻找设计场景的最佳方法。我有一个服务类,它调用存储库并获取日期。应在服务类中的多个方法中使用获取的日期以进行进一步处理。如何声明该变量?它可以是一个实例变量并访问它,还是为该变量创建一个 getter/setter 并使用 getMethod 来获取它?我正在寻找任何好的方法。

在下面的示例中,datevar 是从存储库中获取的,但将在多个方法中使用,我不想每次在方法内调用存储库,也不想保留为参数。

@Service
public class ServiceA(){

@Autowired
DBRepo dbrepo;

public Date fetchDate()
{
Date dateVar = dbrepo.findById();
}

public void method1(){

//use datevar here
}

public void method2() {

/use datevar here
}

}
java spring-boot variables service repo
1个回答
0
投票

我猜你想要

@Service
public class ServiceA(){
   @Autowired
   private DBRepo dbrepo;

   public Date fetchDate() {
      return dbrepo.findById();
   }

   public void method1(Date date) {
      ...
   }

   public void method2(Date date) {
      ...
   }
}

所以你可以做

@Service
public class ServiceB {
   @Autowired
   private ServiceA serviceA;

   public void doStuff() {
      Date date = serviceA.fetchDate();
      serviceA.method1(date);
      serviceA.method2(date);
   }
}
© www.soinside.com 2019 - 2024. All rights reserved.