編程語言 php java

Maven與Spring profile的結合使用

java HTML我幫您 1年前  4406次瀏覽
在實際開發中,我們常常需要應對多類環境,針對不同的環境來更改相應的配置,比如常見開發環境、測試環境以及客戶的實際部署環境。
spring3.1從開始就提供了profile功能,方便我們為不同的profile使用不同的bean。因此我們會遇到下面的場景,在開發環境中數據源的獲取方式是直連數據庫,部署環境中需要連接的是JNDI,如何避免項目打包完每次人工更改配置文件的繁瑣工作呢?

通過引入Spring和Maven的profile特性來實現不同環境自動切換不同配置的功能。

聲明Spring profile
1、 定義兩個beans,分別對應兩個環境下的數據源配置:在Spring的配置文件applicationContext.xml中定義兩個profile的beans。

destroy-method="close">

jdbc:mysql://localhost:1433/jeeweb


admin


adminpassword


1


20











更改web.xml

那么根據Spring的profile特性,我們只要在web.xml文件中定義如下形式配置:


spring.profiles.active
${profiles.active}



就會啟用相應的profile配置,Spring根據指定的配置來注入依賴。

為spring.profiles.active賦值

那么如何在打包時自動更改spring.profiles.active的值呢?這就需要Maven的profile特性。

我們將上述spring.profiles.active的param-value的值更改為{profiles.active},這是Maven的屬性值替換的占位符,Maven的資源過濾插件(Maven Resources plugin)將會在構建期間替換該值,為了在打包時啟用資源過濾,需要我們配置Maven打包插件(Maven war plugin):


org.apache.maven.plugins
maven-war-plugin
2.4

${project.artifactId}
激活spring profile


true
src/main/webapp

**/web.xml



src/main/webapp
src/main/webapp/WEB-INF/web.xml




啟用Maven profile

最后在項目的pom.xml或m2文件夾下的setting.xml中指定Maven的profile:

 不同的打包環境 

開發環境,默認激活

development

development


部署環境

production

production


默認啟用的是dev環境配置
true





根據上述配置,輸入打包命令mvn clean package默認啟用的是production,數據源由JNDI提供,如果需要激活另一個profile,只要更改打包命令為mvn clean package -P development。

發表評論

经典黑杰克游戏 刷资讯赚钱app 帮客户销售赚钱 锟斤拷锟街伙拷锟斤拷么赚钱6 世界杯竞彩比分 体彩福建31选7第18315期 甘肃快3开奖果 - 奥运会网球比分板 游拍直播间怎么赚钱 福建快三形态走势图一定牛 内蒙古快三 股票融资平台ˉ杨方配资 湖北十一选五 百搭麻将手机游戏 天天三分彩计划软件 多乐彩 维加斯哪能赚钱