pom.xml
<profiles> <!-- =====開發環境====== --> <profile> <id>dev</id> <properties> <env>dev</env> <!-- 微服務配置 --> <dubbo.version>server.hbd</dubbo.version> <!-- redis緩存配置 --> <redis.ip>192.16.8.126</redis.ip> <redis.port>6379</redis.port> <redis.pass>cor2017</redis.pass> <!-- swagger接口 --> <swagger.enable>true</swagger.enable> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <!-- =======UAT環境========== --> <profile> <id>uat</id> <properties> <env>uat</env> <!-- 微服務配置 --> <dubbo.version>server.positec</dubbo.version> <!-- redis緩存配置 --> <redis.ip>127.0.0.1</redis.ip> <redis.port>15552</redis.port> <redis.pass>positec2017...</redis.pass> <!-- swagger接口 --> <swagger.enable>true</swagger.enable> </properties> </profile> <!-- ======生產環境====== --> <profile> <id>prod</id> <properties> <env>prod</env> <!-- 微服務配置 --> <dubbo.version>server.positec</dubbo.version> <!-- redis緩存配置 --> <redis.ip>127.0.0.1</redis.ip> <redis.port>6379</redis.port> <redis.pass>123</redis.pass> <!-- swagger接口 --> <swagger.enable>false</swagger.enable> </properties> </profile> </profiles> <build> <resources> <!-- 先指定 src/main/resources下所有文件及文件夾為資源文件 --> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> </resource> <!-- 設置對某些文件進行過濾, 這里對*.properties進行過慮,即這些文件中的${key}會被替換掉為真正的值 --> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.properties</include> </includes> <filtering>true</filtering> </resource> </resources> <finalName>${project.artifactId}</finalName> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.4</version> <configuration> <!--<archiveClasses>true</archiveClasses>--> <warName>${project.artifactId}</warName> <!--<warSourceDirectory>${basedir}/src/main</warSourceDirectory>--> <webappDirectory>${project.build.directory}/${project.artifactId} </webappDirectory> <webResources> <resource> <!-- 由於我是把配置文件都在/WEB-INF/config/文件夾--> <!-- 所以把src/main/resources 被filter替換的文件替換dao WEB-INF/config/下--> <directory>src/main/resources</directory> <targetPath>WEB-INF/classes</targetPath> <filtering>true</filtering> </resource> </webResources> </configuration> </plugin> </plugins> </pluginManagement> </build>
spring boot application.properties配置文件
## spring boot 必須用@xx@符號, 不用${}
spring.profiles.active=@env@
#環境dev=開發, prod=生產, uat=用戶測試
env=@env@
#IP
redis.ip=@redis.ip@
#Port
redis.port=@redis.port@
redis.pass=@redis.pass@
dubbo.zoo.connectString=@dubbo.zoo.connectString@
dubbo.version=@dubbo.version@
swagger.enable=@swagger.enable@
其他模塊普通配置文件
redis.ip=${redis.ip} #Port redis.port=${redis.port} redis.pass=${redis.pass}
spring boot 和普通的方式不同,需要用@@符號占位符,普通方式用${}符號占位
profiles可以被子模塊繼承,
<build><resources>配置很重要。