[英]Spring Boot multiple profiles works in IDE but not from command line
我有一個帶有幾個Java Config類的Spring Boot應用程序。 每個類都有其自己的@Profile
名稱。 在程序參數設置為--spring.profiles.active=config1,config2
的情況下從Eclipse運行應用程序時--spring.profiles.active=config1,config2
服務器將按預期運行,同時運行兩個Config類的所有bean。
但是,當我嘗試使用--spring.profiles...
從命令行啟動應用程序時--spring.profiles...
只有一個配置文件的bean正在運行,順序無關緊要。 僅按字母順序的最后一個概要文件正在運行。 即使日志說
The following profiles are active: config1,config2
仍然沒有config1
的bean啟動。
還嘗試將props文件中的spring.profiles.include
設置為相同的結果。
有任何想法嗎?
這個問題仍然讓我感到困惑。 如果隔離使用了任何概要文件,則它們可以工作,但是將兩者結合使用時,將永遠不會創建config1
概要文件的bean。 調試Spring啟動程序時,表明已找到配置並且正在進行預創建。 但是真正的bean永遠不會被創建和返回。
我創建了一個包裝器類,該包裝器將config1
Java Config類中的一個bean包裝起來,以強制Spring從該特定配置中創建bean。 這不是問題的答案,也不是解決方案,而是解決方法。
@Service
@Profile("config1")
public class DataConsumerWrapperService {
public DataConsumerWrapperService(final MessageParser mp) {
// Do nothing, just trigger the parser bean creation
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.