springboot:springboot的配置(yaml文件方式和properties文件方式)


1、配置文件

(1)全局的配置文件

名稱有兩種:

application.properties和application.yml

(2)作用

修改springboot自動配置的默認值(之所以springboot能夠自動啟動,就是因為springboot的底層已經配置了)

 

2、YAML(YAML  Aint's Markup Language)

(1)特點

以數據為中心,比json和xml等更適合做配置文件

(2)yaml配置方式與xml方式對比

yaml方式:

server:
  port: 8081

xml方式:

<server>
    <port>8080</port>
</server>

測試:

 

 要注意:port:后面要加空格

 

3、YAML語法

(1)基本語法

  • k:空格v  表示一對鍵值對
  • 以空格的縮進來控制層級關系,只要是左對齊的一列都指同一層級,如:
server:
  port: 8081
  path: /nnnn
  • 屬性和值是大小寫敏感的

(2)值的寫法

字面量(數字、字符串、布爾)

server:
  port: 8081
  path: /nnnn

寫法為  k:v:空格  字面量

字符串默認不用加上單引號或者雙引號,加上雙引號的話,不會轉義字符串里面的特殊字符,也就是說特殊字符依舊有效;單引號會轉義特殊字符

對象

student:
  name: zhai
  age: 23

行內寫法:

student:{name: zhai,age: 23}

數組:

用-值的方式來表示數組中的一個元素

students:
  - zhai
  - zhang
  - liu
  - tom

行內寫法:

students: [zhai,zhang,liu,tom]

 (3)獲取yaml配置文件中的數據

定義兩個實體類,其中student實體類的屬性包括Course類:

@Data
@Component
@ConfigurationProperties(prefix = "student")//告訴springboot將本類中的所有屬性和配置文件的相關配置進行綁定
public class Student {       //prefix:配置文件中哪一個名稱下面的屬性進行一一映射
    private String sname;
    private int age;
    private Map<String,Object> maps;
    private List<Object> list;
    private Course course;
}
@Data
public class Course {
    private String courseno;
    private String coursename;
}

創建yaml配置文件:

student:
  sname: zhai
  age: 12

  maps: {k1: 12,k2: 13}
  list:
    - zhai
    - zhang
  course:
    courseno: 202007
    coursename: javaweb

創建properties文件:

#配置student
student.age=12
student.sname=zhai
student.maps.k1=1
student.maps.k2=2
student.list=a,b,c
student.course.courseno=202007
student.course.coursename=java

測試類:

//可以在測試期間很方便地類似編碼一樣進行自動注入等容器的功能
@SpringBootTestclass Springboot03ApplicationTests {
    @Autowired
    Student student;
    @Test
    void contextLoads() {
        System.out.println(student);
    }
}

需要導入的依賴:配置文件處理器,配置文件進行綁定會有提示

   <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>2.2.1.RELEASE</version>
   </dependency>

 (4)properties文件中文亂碼的解決方案:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM