如何在java中只从DB加载一次值
我正在使用spring boot应用程序,希望只从如何在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
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缓存是更好的解决方案