我正在開發一個使用Spring Data和Gemfire的數據服務。 有一個註釋@Spring註解使用Spring Data Gemfire時
@Region("<region name>")
來指定的GemFire區域POJO將被存儲在。
它要求配置的GemFire區域的名稱。 我覺得硬編碼區域的名稱是一種不好的做法,因爲Gemfire集羣將由單獨的團隊管理,我相信區域名稱應該是完全可配置的。
有沒有更好的做法來避免硬編碼區域名稱?
我正在開發一個使用Spring Data和Gemfire的數據服務。 有一個註釋@Spring註解使用Spring Data Gemfire時
@Region("<region name>")
來指定的GemFire區域POJO將被存儲在。
它要求配置的GemFire區域的名稱。 我覺得硬編碼區域的名稱是一種不好的做法,因爲Gemfire集羣將由單獨的團隊管理,我相信區域名稱應該是完全可配置的。
有沒有更好的做法來避免硬編碼區域名稱?
區域名稱必須由訪問該區域的所有進程共享。這類似於關係數據庫中的表名。從這個意義上說,它與JPA或Hibernate註釋沒有區別,聲明POJO將存儲在其中的表名。 IIRC,使用Spring Data Repositories,如果@Region不存在,它將從類名中得到它。但無論如何,相應的地區必須存在。如果您的應用程序是GemFire網格的客戶端,則還必須配置與服務器上相應區域具有相同名稱的客戶端區域。如果它是一個對等點,則必須創建該區域(分區或副本)。這些事情可以通過Spring配置或本地GemFire配置來完成,但無論如何,共享區域名稱必須事先知道,如果發生更改,則必須隨處更改。
你可以使用Spring Expression Language來注入Region的名字嗎?
我們從配置bean,它本身是基於XML文件注入值,爲@Value註釋e.g:
@Value("#{config.dataSourceConfig.dbMainUsername}")
其中,「配置」是在配置bean的名字。
不知道這是適用於所有的註釋壽...
你有這方面的一些閱讀材料嗎?我需要避免硬編碼在註釋中傳入的值。 TNX –
不知道它是否回答我的問題。我希望能夠至少從屬性文件加載區域名稱。不喜歡源代碼中硬編碼名稱的想法。 –