我目前正在將現有的應用程序遷移到Spring Boot 1.2(使用Mule 3;與Spring 4.2不兼容)。這個應用程序包含一個庫提供的(我不能修改的)servlet,它通過用bean定義讀取一些包含應用程序的XML文件來創建幾個ClasspathXmlApplicationContext來執行Mule引導過程。將applicationConfig PropertySource添加到新環境中
我的問題是,這個XML文件包含幾個佔位符,應根據活動配置文件以不同的方式解析佔位符(我將這些變量存儲在application.yml文件中,具有不同的配置文件),但applicationConfig PropertySource isn' t可用於新應用程序上下文創建的StandardEnvironment。
我可以將YML文件轉換爲.properties文件,並在每個這樣的XML文件中創建一個新的PropertyPlaceholderConfigurer,指向同一個應用程序 - #{systemProperties ['spring.profiles.active']}。properties,但:
我會失去定位在使用常規和優先級,這對於一個應用程序,通過的,在不同環境遷移會聽起來方便不同的內部/外部位置的屬性文件中啓動的靈活性。
如果我需要多次添加相同的定義,我想有一個程序化的方式來做到這一點,我忽略了。
有誰知道我怎麼可能applicationConfig PropertySource的內容添加到所有新創建的ApplicationContexts,而無需訪問和修改創建它們的類? Spring Boot 1.2不具備EnvironmentPostProcessor的精美功能。