配置不同生產環境 本文適用於開發環境下需要打包項目至生產環境,避免開發環境的配置文件泄露。 設置maven 作用:1. 手動調節運行時的不同環境 2. 打包時可以不會有其它環境的文件 註:每次換環境前(打包前)記得手動clean清楚,因為idea不會在換環境後自動清除另一個環境的文件 在pom文件中 ...
配置不同生產環境
本文適用於開發環境下需要打包項目至生產環境,避免開發環境的配置文件泄露。
設置maven
作用:1. 手動調節運行時的不同環境 2. 打包時可以不會有其它環境的文件
註:每次換環境前(打包前)記得手動clean清楚,因為idea不會在換環境後自動清除另一個環境的文件
在pom文件中加
-
在依賴
前加 <!--分別設置開發,生產環境--> <profiles> <!-- 開發環境 --> <profile> <id>dev</id> <activation> <!--設置預設為dev環境--> <activeByDefault>true</activeByDefault> </activation> <properties> <environment>dev</environment> </properties> </profile> <!-- 生產環境 --> <profile> <id>prod</id> <activation> <!--不設置該環境為預設環境--> <activeByDefault>false</activeByDefault> </activation> <properties> <environment>prod</environment> </properties> </profile> </profiles>
-
在
標簽中放該代碼 <resources> <!--排除配置文件--> <resource> <directory>src/main/resources</directory> <!--先排除所有的配置文件--> <excludes> <!--使用通配符,當然可以定義多個exclude標簽進行排除--> <exclude>application*.yaml</exclude> </excludes> </resource> <!--根據激活條件引入打包所需的配置和文件--> <resource> <directory>src/main/resources</directory> <!--引入所需環境的配置文件--> <filtering>true</filtering> <includes> <include>application.yaml</include> <!--根據maven選擇環境導入配置文件--> <include>application-${environment}.yaml</include> </includes> </resource> </resources>
設置三個yaml
application.yaml
、application-dev.yaml
、application-prod.yaml
//application.yaml
//方法一:弊端(打包時會把dev 和 prod環境的配置文件都會打包),無法真正做到多環境開發
spring:
profiles:
active: dev //這裡是寫配置文件命名-後的單詞
//方法二:通過maven來告訴springboot應該打包哪個環境的文件(優點:不會包含其他環境的配置文件)
spring:
profiles:
active: '@environment@' #這裡的單詞要手動打,等有提示才行,不然會失敗。註意YAML配置文件需要加單引號,否則會報錯。
//application-dev.yaml
server:
port: 8080
//application-prod.yaml
server:
port: 80
註意:
如果有設置日誌列印,想要不同環境日誌列印不同需要去日誌列印的配置文件改這些:把上面上部分改成下部分
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
------------------------------------------------------------------
<!--dev環境下的日誌輸出方式-->
<springProfile name="dev">
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</springProfile>
<!--prod環境下的日誌輸出方式-->
<springProfile name="prod">
<root level="INFO">
<appender-ref ref="FILE"/>
</root>
</springProfile>