Dmitry Asked:2020-09-20 15:17:02 +0000 UTC2020-09-20 15:17:02 +0000 UTC 2020-09-20 15:17:02 +0000 UTC Spring用于缓存存储在数据库中的参数的专用工具 772 有一个任务:编写一个类,该类在启动项目时从数据库中读取存储在单独表中的参数(Id - Name - Value)。该类被其他类访问以获取参数,而无需访问数据库。据我了解,Spring为此提供了特殊工具。但我什么也没找到。怎么看? java 2 个回答 Voted Artem Konovalov 2020-09-20T18:55:14Z2020-09-20T18:55:14Z Spring 没有特殊工具,但Hibernate有。它有几个级别的缓存: 会话级别 二级缓存 - 能够处理不同的会话 请求缓存 - 也适用于不同的会话,但对于请求 第一个默认启用,第二个和第三个需要配置。你可以在这里阅读更多 Best Answer Nick 2020-09-20T18:06:44Z2020-09-20T18:06:44Z 你在做一项服务。在其中,通过Autowired构造函数,您可以获取存储库并读取某个 HashMap 中的所有数据。在同一个服务中,您创建一个公共方法来按键获取值。然后在您需要的任何地方使用此服务。 @Service public class ParameterService { private HashMap<String, String> params = new HashMap<>(); @Autowired public ParameterService(ParameterRepository repository) { foreach(Parameter p : repository.findAll()) { params.put(p.getName(), p.getValue()); } } public String getParamValue(String name) { return params.get(name); } } @Service public class AnotherService { private final ParameterService parameterService; @Autowired public ParameterService(ParameterService parameterService) { this.parameterService = parameterService; } public void logic() { String value = parameterService.getParamValue("name"); } }
Spring 没有特殊工具,但Hibernate有。它有几个级别的缓存:第一个默认启用,第二个和第三个需要配置。你可以在这里阅读更多
你在做一项服务。在其中,通过
Autowired构造函数,您可以获取存储库并读取某个 HashMap 中的所有数据。在同一个服务中,您创建一个公共方法来按键获取值。然后在您需要的任何地方使用此服务。