簡體   English   中英

Spring Boot的多個配置文件可在IDE中使用,但不能從命令行使用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM