繁体   English   中英

使用 Spring 在整个应用程序中保存数据的最佳实践

[英]Best practice holding data over whole application with Spring

我们介绍了 Spring 引导和 Spring 数据 JPA。 在旧世界中,我们有一个用于保存需要整个应用程序(国家列表等)的数据的单例。 数据存储在我们的数据库中。 在我们的新世界中使用 Spring 重构它的最佳实践是什么? 我应该使用应用程序 scope 创建一个 bean,还是现在使用缓存(@Cacheable)处理它的最佳实践?

我建议将数据保存在数据库中,但使用流行的内存缓存库(如caffeineGoogle Guava )对其进行缓存。 这些库允许您快速配置可以不时刷新数据的内存缓存(每 15 分钟;每小时;每天;无论您想要什么)。 您的程序代码可以根据需要多次访问缓存,它总是很快。 该库具有定期更新缓存的逻辑。

如果您的数据特别是 static,例如您可能每隔几个月/几年更改一次的应用程序配置,您也可以考虑将其移动到 static 配置文件中。 Spring Boot 具有多种内置功能,用于加载外部配置(JSON 或 YAML)并将其绑定到基于 Java 的 object model。 我发现@ConfigurationProperties注释特别有用。 外部配置可以打包在 fat-jar 中,也可以通过 Spring 配置服务器从外部加载。 这种方法的主要优点是您的配置将存储在您的版本控制系统 (GIT) 中。 您还可以对您的配置执行启动时验证,这可能会显示错误,否则这些错误会在您的服务上线时显示出来。 最后,您的配置不再依赖于数据库。

两种方法都可以。 我更喜欢@Cacheable ,因为它的代码少一点,可以轻松获得条件缓存和驱逐等操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM