Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中只从DB加载一次值_Java_Spring_Spring Boot - Fatal编程技术网

如何在java中只从DB加载一次值

如何在java中只从DB加载一次值,java,spring,spring-boot,Java,Spring,Spring Boot,我正在使用spring boot应用程序,希望只从DB加载一次常量值,以避免多次DB调用。由于我在我的应用程序中多次使用相同的常量,所以我没有使用兑现是否有只加载一次的替代方法 public class DBConstants { @Autowired DBService service; public static String WORD_LIMIT ; public loadOnce(){ WORD_LIMIT = service.ge

我正在使用spring boot应用程序,希望只从
DB
加载一次常量值,以避免多次
DB
调用。由于我在我的应用程序中多次使用相同的常量,所以我没有使用
兑现
是否有只加载一次的替代方法

 public class DBConstants {
   
   @Autowired
   DBService service;

   public static String WORD_LIMIT ;
   
   public loadOnce(){
      WORD_LIMIT = service.getWordLimit();
    }
  }
这是正确的方法吗

在我的服务中
Aservice.java

      if(empDto.getFirstName().length()>Integer.parseInt(DBConstants.WORD_LIMIT)){
         // some code and logic
      }
类似于
Bservice.java


所以想法是只调用一次
DB

您可以创建一个带有私有字段和公共getter的组件,在getter中实现字段检查:如果初始化了,则返回,否则从DB加载,分配给字段并返回。但是使用这种方法,您需要检查并初始化同步代码中的值,以确保DB调用只发生一次

 public class DBConstants {
   
   @Autowired
   DBService service;

   public static String WORD_LIMIT ;
   
   public loadOnce(){
      WORD_LIMIT = service.getWordLimit();
    }
  }
但我认为使用Spring缓存是更好的解决方案