SpringBoot配置文件类型及作用:
SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml) 进行配置
SpringBoot默认会从Resources目录下加载application.properties或application.yml(application.yaml)文件进行配置,application.properties文件时键值对类型文件,之前一直在使用,所以就对properties文件格式进行阐述,除了properties文件外,SpringBoot还可以使用yml文件进行配置,下面对yml文件进行实例。
application.yml配置文件
yml配置文件简介:
YML文件格式是YAML(YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的数据序列化格式,并且容易被人类阅读,容易和脚本语言交互,可以被支持YAML库的编程语言程序导入,比如:c/c++,Python,java,c#,PHP等,YML文件是以数据为核心的,比传统的xml方式更加简洁。
YML文件的扩展名可以是.yml也可以是.yaml
yml配置文件的语法
- 普通对象的配置
key: value
- 对象的配置
key:
key1: value1
key2: value2
- 行内对象的配置
key: {key1: value1,key2: value2}
注意: 冒号后面有至少一个空格
下面有两个实例来演示两种不同的应用方式:
1.写配置文件内容(application.yml)
Student:
id: 202
name: lisi
2.写实体类
package com.lydemo.domain;
public class Student {
int age;
String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return super.toString();
}
}
3.写ControllerDemo
方式一:加@Value(“${属性名}”)方式
package com.lydemo.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ControllerDemo {
@Value("${Student.id}")
int id;
@RequestMapping("/propertiesdemo")
public String show(){
return "id:"+id;
}
}
方式二:加注解@ConfigurationProperties,并加上它的prrfix,另外@Component可加可不加,但是需要加spring-boot-configuration-processor依赖
导入依赖:
<!-- @ConfigurationProperties的执行器的配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
package com.lydemo.controller;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@ConfigurationProperties(prefix="student")
public class ControllerDemo1 {
int id;
String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@RequestMapping("/propertiesdemo1")
public String show(){
//获得配置文件的信息
return "id:"+id+" name:"+name;
}
}