spring Boot的配置
Posted hoje
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring Boot的配置相关的知识,希望对你有一定的参考价值。
一、配置文件
SpringBoot使用一个全局的配置文件,配置文件名是固定的;
- application.properties
- application.yml
配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;
YAML :YAML Ain‘t a Markup Language (YAML不是一种标记语言)
标记语言:
以前的配置文件:大多使用的是 xxx.xml文件;
(YAML) 以数据为中心,比json、xml等更适合做配置文件
YAML:配置例子
server:
port: 8080
XML:
<server> <port>8081</port> </server>
二、YAML语法:
1、基本语法
k:(空格)v:表示一对键值对(空格必须有);
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一层级的
server: port: 8081 path: /hello
属性和值也是大小写敏感;
2、值的写法
字面量:普通的值(数字,字符串,布尔)
k:v:字面直接来写;
字符串默认不用加上单引号或者双引号;
“”:双引号:不会转义字符串里面的特殊字符,特殊字符会作为本身想表达的意思
name : “Wangwu \n haha” : 输出: Wangwu 换行 haha
‘’:单引号:会转义特殊字符,特殊字符最终只是一个普通的字符串数据
name : ‘Wangwu \n haha’ : 输出: Wangwu \n haha
对象、Map(属性和值)(键值对):
k:v : 在下一行来写对象的属性和值的关系(注意缩进)
对象还是k:v的方式
fridends:
lastName:zhangsan
age:20
行内写法:
friends:{lastName: zhangsan,age:12}
数组(List、Set):
用-值表示数组中的一个元素
pets: - cat - dog - pig
行内写法
pets: [cat,dog,pig]
3、获取配置文件值注入
配置文件
server: port: 8080 person: lastName: zhangsan age: 18 boss: false birth: 2017/01/12 map: {k1: v1,k2: v2} list: - lisi - wangwu dog: name: 小狗 age: 2
javaBean:
package com.hoje.springboot.bean; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Component; import java.util.Date; import java.util.List; import java.util.Map; /** * 将配置文件中配置的每一个属性的值,映射到这个组件中 * @ConfigurationProperties :告诉SpringBOot将本类中的所有属性和配置文件中相关配置进行绑定; * prefix = "person":配置文件中哪个下面的所有属性进行一一映射 * * 只有这个组件是容器中的组件,才能使用容器中的功能; */ @Component @ConfigurationProperties(prefix="person") public class Person { private String lastName; private Integer age; private Boolean boss; private Date bitrh; private Map<String,Object> maps; private List<Object> lists; private Dog dog; @Override public String toString() { return "Person{" + "lastName=‘" + lastName + ‘\‘‘ + ", age=" + age + ", boss=" + boss + ", bitrh=" + bitrh + ", maps=" + maps + ", lists=" + lists + ", dog=" + dog + ‘}‘; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public Boolean getBoss() { return boss; } public void setBoss(Boolean boss) { this.boss = boss; } public Date getBitrh() { return bitrh; } public void setBitrh(Date bitrh) { this.bitrh = bitrh; } public Map<String, Object> getMaps() { return maps; } public void setMaps(Map<String, Object> maps) { this.maps = maps; } public List<Object> getLists() { return lists; } public void setLists(List<Object> lists) { this.lists = lists; } public Dog getDog() { return dog; } public void setDog(Dog dog) { this.dog = dog; } }
导入配置文件处理器,以后编写配置就有提示
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
以上是关于spring Boot的配置的主要内容,如果未能解决你的问题,请参考以下文章
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式
一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式