2016-08-23 23 views
0

我正在使用Spring,並且我有一個充滿了bean的xml文件。根據變量載入另一個spring bean文件?

現在,我想將這些bean中的一些帶入我的應用程序,如果一個變量是真的,另一個是假的。

有誰知道我可能會做到這一點?

編輯:通過「帶入我的應用程序」 - 我的意思是我想基於一些標準來實例化它們。

+0

編輯,以反映一個答案......從本質上講,我只如果滿足某個條件,則想要實例化bean。如Environment =「Dev」或Environment =「Prod」。 – MickeyThreeSheds

+0

通常我們使用2個不同的配置文件和不同的配置文件。我從來沒有遇到過這個問題,我認爲這是一個設計問題。你不應該得到這個問題。 –

+0

我完全同意你的看法,但是我的老闆不會在這裏得到答案 - 而且我實際上必須得到這個工作。將它們拆分爲兩個不同的文件完全是一種選擇 - 您是否知道這方面的任何資源? – MickeyThreeSheds

回答

1

呦可以使用配置文件,並在配置文件中聲明bean。其中一個bean可以是你的財產佔位符。

<beans profile="dev"> 
    <context:property-placeholder 
     location="classpath:properties/application-default.properties, classpath:properties/application-dev.properties" 
     ignore-unresolvable="true" /> 
</beans> 

<beans profile="test"> 
    <context:property-placeholder 
     location="classpath:properties/application-default.properties, classpath:properties/application-test.properties" 
     ignore-unresolvable="true" /> 
</beans> 

然後你可以使用Maven

mvn clean install -Dspring.profiles.active="dev" 

你可以看到更多在這裏產生

https://examples.javacodegeeks.com/enterprise-java/spring/load-environment-configurations-and-properties-with-spring-example/

https://www.mkyong.com/spring/spring-propertysources-example/

+0

是否可以使用與profiles.active不同的參數進行工作? – MickeyThreeSheds

+0

您可以通過在應用程序運行之前調用SpringApplication.setAdditionalProfiles(...)以編程方式設置活動配置文件。 http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html – reos

+0

太棒了 - 我在這裏有一個最後的問題 - 然後我可以定義這是最好的答案 - 如果我需要一些我的bean來加載所有配置文件,該怎麼辦?我可以選擇不在這些bean上設置配置文件,它們將加載到每個配置文件中? – MickeyThreeSheds

相關問題