spring boot 不同的環境使用不同的配置dev,uat,prod
阿新 • • 發佈:2019-02-12
一.application.yml檔案
yml檔案部分 start
01、首先我們都知道一個常識,那就是每個人都有自己的年齡,比如我們現在的業務需求是查詢所有年齡大於20的人的相關資訊,如果我們選擇通過配置檔案來配置這個值為20的常量的話,我們該如何配置和如何從配置檔案中獲取這個值呢?,application.yml的內容如下(注意 “age:“ 和 “20“ 之間需要一個空格,yml的語法 ):
- server:
- port: 8087
- context-path: /springboot-yml-properties
- #年齡
- age: 20
再controller檔案中獲取的方式:
- @Value
- private Integer age;
下面是一個yml配置檔案的靈活使用方法:
- #年齡
- age: 20
- #姓
- lastName: 王
- content: "age: ${age}, lastName: ${lastName}"
controller層資料獲取:
- @Value("${age}")
- private Integer age;
- @Value("${lastName}")
- private String lastName;
- @Value("${content}")
- private String content;
- @RequestMapping("/test")
- public String test() {
- return content;
- }
多層:
- #人
- person:
- age: 20
- lastName: 王
- date: 2001-03-27
controller層程式碼表示:
- @Value("${person.age}")
- private Integer age;
二、不同環境的配置dev,uat,prod
新建三個yml檔案,分別為application-dev.yml,application-uat.yml,application-prod.yml.三個檔案大同小異,dev為開發環境,uat為測試環境,prod為生產環境。application.yml檔案根據不同環境改變profiles:active的值,使用不同的檔案。
專案啟動時可以新增java -jar web.jar spring.profiles.active=uat 來啟動不同環境配置,但僅限於開發和測試環境,線上環境不允許這樣操作。
dev配置如下
server:
port: 8080
tomcat:
uri-encoding: utf-8
spring:
thymeleaf:
mode: LEGACYHTML5
cache: false
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
profiles:
active: dev
http:
multipart:
max-file-size: 30Mb
max-request-size: 30Mb
devtools:
restart:
enabled: true
mybatis:
configuration:
map-underscore-to-camel-case: true
mapper-locations: mybatis/**/*Mapper.xml
三、注意
1.spring只能出現一個
2.格式正確,同級要對齊
3.引數的寫法:例如age: 20,冒號後面必須有空格否則會報錯,idea編譯器中會有提醒,eclipse並沒有
4.編輯yml檔案時不能使用TAB鍵來縮排,否則啟動會報錯。