簡體   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