第一步:在resources目錄下新建config目錄,而且建立profile-dev.properties(開發)、profile-prod.properties(生產)兩個配置文件。例如:redis
第二步:修改pom.xml文件,須要修改兩個地方maven
一、在project標籤內新增下列配置ui
<profiles> <profile> <id>dev</id> <build> <filters> <filter>src/main/resources/config/profile-dev.properties</filter> </filters> </build> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>prod</id> <build> <filters> <filter>src/main/resources/config/profile-prod.properties</filter> </filters> </build> </profile> </profiles>
二、在project > build > resources標籤下增長以下內容:xml
<resource> <directory>${basedir}/src/main/resources</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>true</filtering> </resource>
分析下<resource>下面的屬性:
<directory>: 配置那個目錄下的文件經過${key}會被替換成屬性值,resource目錄下,咱們通常放jdbc鏈接,或配置文件。
<includes>:指定那個目錄下那個文件。
<filtering>:這個配置的意思是過濾上面指定屬性文件中的佔位符,佔位符是${變量名稱}這樣的形式,maven會自動讀取配置文件,而後解析其中的佔位符,使用上面pom文件中定義的屬性進行替換。
<exclueds>:在resource目錄下,有不少文件,但用些文件不但願替換,則能夠經過<excluede>指定。
<filters>:這裏的filters與<profile>的filter意思同樣,都是指屬性文件地址,這個若是上面定義<profile>的時候指定了,這裏就不須要了,但有些開發習慣是在<profile>不定義,而後在<build>裏指定。開發
案例:io
profile-dev.properties的內容以下:ast
#1000*60*2 thread.sleepTime=120000 #redis redis.keyPrefix=hbase redis.host=10.0.11.245 redis.port=6379 redis.timeout=3600000 redis.password=wetp #hbase hbase.zookeeper.quorum=10.0.11.104 hbase.zookeeper.property.clientPort=2181 hbase.master=10.0.11.104:16010
被替換的文件wetp.properties的內容以下:thread
thread.sleepTime=${thread.sleepTime} #redis redis.keyPrefix=${redis.keyPrefix} redis.host=${redis.host} redis.port=${redis.port} redis.timeout=${redis.timeout} redis.password=${redis.password} #hbase hbase.zookeeper.quorum=${hbase.zookeeper.quorum} hbase.zookeeper.property.clientPort=${hbase.zookeeper.property.clientPort} hbase.master=${hbase.master}