1. 程式人生 > >spring boot 不同的環境使用不同的配置dev,uat,prod

spring boot 不同的環境使用不同的配置dev,uat,prod

一.application.yml檔案

yml檔案部分 start

01、首先我們都知道一個常識,那就是每個人都有自己的年齡,比如我們現在的業務需求是查詢所有年齡大於20的人的相關資訊,如果我們選擇通過配置檔案來配置這個值為20的常量的話,我們該如何配置和如何從配置檔案中獲取這個值呢?,application.yml的內容如下(注意 “age:“ 和 “20“ 之間需要一個空格,yml的語法 ):

  1. server:  
  2.   port: 8087  
  3.   context-path: /springboot-yml-properties  
  4. #年齡   
  5. age: 20  

再controller檔案中獲取的方式:

  1.    @Value
    ("${age}")  
  2.     private Integer age;  

下面是一個yml配置檔案的靈活使用方法:

  1. #年齡   
  2. age: 20  
  3. #姓  
  4. lastName: 王  
  5. content: "age: ${age}, lastName: ${lastName}"  

controller層資料獲取:

  1.  @Value("${age}")  
  2.     private Integer age;  
  3.     @Value("${lastName}")  
  4.     private String lastName;  
  5.     @Value("${content}")  
  6.     private String content;  
  7.     @RequestMapping("/test")  
  8.     public String test() {  
  9.         return content;  
  10.     }  

多層:

  1. #人  
  2. person:  
  3.   age: 20  
  4.   lastName: 王  
  5.   date: 2001-03-27 

controller層程式碼表示:

  1.  @Value("${person.age}")  
  2.     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鍵來縮排,否則啟動會報錯。