這是我的一個applicationContext定義來檢索一些屬性。@ActiveProfile和spring.profiles.active
<!-- get some properties -->
<context:property-placeholder
ignore-resource-not-found="false" ignore-unresolvable="false"
location="classpath:/properties/${spring.profiles.active:test}/some.properties"/>
正如你所看到的,我讓spring.profiles.active決定將讀取哪些屬性。 我的測試標註有:
@ActiveProfile("integration")
你猜對我的Spring bean配置文件實際上是匹配在部署/測試應用程序的環境。 仍然我的位置屬性已解析爲「/properties/test/some.properties」。這當然是因爲spring.profiles.active在這種情況下似乎沒有得到解決。
我怎樣才能獲得正確的屬性?
這確實是一個解決方案,我也在想,但這仍然感覺像@ActiveProfile註釋實現中的一個錯誤。爲了完整起見,我會期待它設置spring.profiles.active屬性。我不是寫很多xml的忠實粉絲。 – 2013-03-05 18:58:13
在這種情況下,您可以添加自定義JUnitTestRunner並根據@ActiveProfiles設置系統屬性 – 2013-03-05 19:41:21
我們還可以使用@PropertySource設置propertysource,並確保我們的PropertyPlaceHolder不會抱怨丟失的屬性文件。但重要的是失去擁有這個屬性。 – 2013-03-06 05:54:27