我有兩個豆子。兩者都實現郵件功能。一個僅在部署到應用程序服務器時才起作用。另一個用於測試。彈簧與配置文件的默認佈線
我們有每個開發人員和環境的配置文件。我只想在實際測試時連線測試bean。其他bean應該在未測試時使用。我怎樣才能存檔這個?
@Component
@Profile("localtest")
public class OfflineMail implements Mailing {}
解決辦法:
使用「默認」我看這個地方,但似乎沒有落回至「默認」對於喜歡「開發」的輪廓:
@Component
@Profile("default")
public class OnlineMail implements Mailing {}
- >發現接線沒有bean的例外。
離開輪廓了:
@Component
public class OnlineMail implements Mailing {}
- >運行 「localtest」 配置文件時拋出一個獨特的異常。
添加所有配置:
@Component
@Profile("prod")
@Profile("integration")
@Profile("test")
@Profile("dev1")
@Profile("dev2")
@Profile("dev3")
...
public class OnlineMail implements Mailing {}
這實際上是工作的,但是我們的開發人員都沒有編號,他們使用「開發<WindowsLogin>」和添加配置文件,可以爲一個豆工作,但一會就搞定當它用於幾個豆時會陷入麻煩,因爲這肯定會變得很難看。
使用像@Profile(「!localtest」)這樣的東西似乎也不起作用。
有誰知道一個更好的方式來獲得「默認情況下,如果沒有找到特定的bean的電線」?
'@ Component'沒有'@ Profile'必須是默認的bean,如果沒有什麼是有線。你有沒有試圖避免與組件名稱設置名稱的唯一例外?我的意思是,'@Component(「mail」)'帶'@Profile(「localtest」)',沒有它? – n1ckolas 2013-03-05 14:04:35