2016-02-29 34 views
0

我使用其中datasouce的默認配置是在application.properties使用以下屬性做了春天啓動的應用程序:配置JNDI春季啓動應用程序

spring.datasource.driverClassName=${datasource.driver.className} 
spring.datasource.url=${datasource.url} 
spring.datasource.username=${datasource.username} 
spring.datasource.password=${datasource.password} 

的事情是,這個效果很好,當我運行通過本地Maven春天開機運行命令,但是我需要配置這樣的事情,當我嘗試到一個Maven構建創建一個戰的配置把一個JNDI名稱爲:

spring.datasource.jndi-name=java:jboss/datasources/ 

我可以做它可以通過maven或任何其他方式配置我們通過Spring引導來部署它,它挑選4個以上的屬性,當我們創建一個戰爭時,它只挑選JNDI屬性。

-Vaibhav

+0

擁有2個獨立的配置文件當然有幫助,但如果我們希望將JNDI查找設置爲默認值,並且本地配置使用其他屬性文件取消設置,該怎麼辦。因此,當我們在沒有明確提及spring配置文件的情況下進行構建時,它將使用JNDI查找來構建,並且明確提及數據源是如何構建的? – Vaibhav

回答

0

您可以使用Spring配置文件。例如,創建一個名爲application-local.properties文件和前四個屬性添加到它:

# application-local.properties 
spring.datasource.driverClassName=${datasource.driver.className} 
spring.datasource.url=${datasource.url} 
spring.datasource.username=${datasource.username} 
spring.datasource.password=${datasource.password} 

然後創建另一個文件名application-jndi.properties

# application-jndi.properties 
spring.datasource.jndi-name=java:jboss/datasources/ 

現在,所有你需要做的就是添加VM參數-Dspring.profiles.active=local(或將SPRING_PROFILES_ACTIVE=local環境變量)添加到本地運行時的命令中,當需要使用JNDI運行時添加-Dspring.profiles.active=jndi

根據Maven包裝類型,它並不完全自動化,但在每個環境中配置Spring配置文件也不是很困難。您還可以將兩個配置屬性中的一個設置爲默認值(在application.properties中),因此您不必配置配置文件。

+0

「您也可以將這兩個配置屬性中的一個設置爲默認值(在application.properties中),因此您不必配置配置文件。」你能詳細說明一下嗎? – Vaibhav

+0

如果你在'application.properties'中設置了'spring.datasource.jndi-name'屬性,並且你在'application-local.properties'中取消了設置,那麼你不需要'application-jndi.properties'因爲如果你在沒有配置文件的情況下運行,這是默認設置 – g00glen00b

+0

是的,我試圖這樣做,但無法找出一種方法來取消設置屬性,實際上它認爲application.properties作爲父母,設置爲空再次拋出一個異常。 – Vaibhav