一.查看默认配置
springboot默认给我们配置了许多东西,可以进行查看
二.修改配置
如果需要修改配置,比如说修改tomcat端口,可以在resources目录下新建一个application.properties文件
在里面写上 server.port=8081,就可以覆盖默认的配置
三.yml(yaml)配置文件
除了.properties外,还提供了yml(yaml)配置文件。YML文件是以数据为核心的,比传统的xml方式更加简洁。YML文件的扩展名可以使用.yml或者.yaml。
.properties文件非常好理解,通过=号赋值,
.yml文件类似于json,但它又是通过空格来编织层级关系,这一点又类似python。在yml中,相同缩进代表同一级别
例如:在application.properties,配置如下
server.port=8081
在.yml文件中配置如下
server:
port: 8082
如果多个配置文件配置了相同的属性,由于加载顺序是.yml .yaml .properties
后面的配置会覆盖前面的配置.即端口号为8081
四.yml配置简单练习
#普通数据配置
name: zhangsan
#对象的配置
person:
name: zhangsan
age: 18
addr: beijing
#行内对象的配置
person1: {name: zhangsan,age: 18,addr: beijing}
#配置数组,集合(普通字符串)
city:
- beijing
- tianjin
- shanghai
city1: [beijing,tiangjin,shanghai]
#配置数组,集合(对象数据)
student:
- name: tom
age: 18
addr: beijing
- name: lucy
age: 17
addr: tianjing
student1: [{name: tom,age: 18,addr: beijing},{name: lucy,age: 17,addr: tianjing}]
#map配置
map:
key1: value1
key2: value2
五.properties文件转为yml文件
properties:
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/test
jdbc.username=root
jdbc.password=root
yml:
jdbc:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test
username: root
password: root
六.多个yml
可以配置多个yml文件,只要他们的名字是application-***.yml就行,例如application-abc.yml ,
application-xyz.yml.
多个yml需要在application.yml中激活
spring:
profiles:
active: abc,xyz
七.获得配置的值
方式一:通过value取值
@Controller
public class Quick2Controller {
@Value("${name}")
private String name;
@Value("${person.addr}")
private String addr;
@RequestMapping("/quick2")
@ResponseBody
public String quick2(){
//获得配置文件的信息
return "name: "+name+",addr= "+addr;
}
}
启动main方法,浏览器输入localhost:8080/quick2
页面显示:name: zhangsan,addr=beijing
缺点:当配置内容多的时候,需要多次取值
方式二 使用@ConfigurationProperties注解
首先为name和addr提供getter和setter方法,加上注解@ConfigurationProperties,里面写prefix前缀,
这样,就会自动前往person下寻找name和addr
@Controller
@ConfigurationProperties(prefix = "person")
public class Quick3Controller {
private String name;
private String addr;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
@RequestMapping("/quick3")
@ResponseBody
public String quick2(){
//获得配置文件的信息
return "name: "+name+",addr= "+addr;
}
}
注意加上@ConfigurationProperties的执行器,在配置yml里属性时会有提示。可以先写属性,再去配置。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
八.修改已整合框架的配置
步骤:
1.Spring Boot整合XX框架
2.找到spring-boot-autoconfigure-XXX.RELEASE.jar
3.找到XX框架所在的Package
4.XXProperties类里查看对该框架可以配置的配置项
5.在resources下的application.properties设置XX框架的配置项
例:修改tomcat的端口号:
在application.yml文件中
#tomcat端口
server:
port: 80