SpringBoot系列之SpringBoot配置详解

SpringBoot配置文件详解


一、SpringBoot配置文件分类

SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置。

  1. 默认配置文件名称:application.properties
  2. 在同一级目录下优先级为:properties>yml > yaml

例如:配置内置Tomcat的端口

properties:

server.port=8081

yml:

server: 
	port:8081

二、SpringBoot配置-yaml(yml)基本语法

1.概念

YAML(YML)是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持YAML库的不同的编程语言程序导入。

2.语法特点

• 大小写敏感
• 数据值前边必须有空格,作为分隔符
• 使用缩进表示层级关系
• 缩进时不允许使用Tab键,只允许使用空格(各个系统 Tab对应的空格数目可能不同,导致层次混乱)。
• 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
• ‘’#" 表示注释,从这个字符一直到行尾,都会被解析器忽略。
代码如下(示例):

server:
  port: 8081
  address:
name: lp
msg1: 'hello \n world' #单引忽略转义字符
msg2: "hello \n world" #双引识别转义字符

三.SpringBoot配置-yaml数据格式

对象(map):
键值对的集合。

person:
  name: lp
# 行内写法
person:{name: lp}

纯量:
单个的、不可再分的值

msg2: "hello \n world" #双引识别转义字符

数组:一组按次序排列的值

address:
  - beijing
  - shanghai
# 行内写法
address: [beijing,shanghai]

四.SpringBoot配置-获取配置文件中的数据

1.使用@Value注解 常用

 @Value("${name}")
 private String name;

2.Evironment

@Autowired
private Environment env;

System.out.println(env.getProperty("person.name"));

3. @ConfigurationProperties
注意:prefix一定要写

@Component
@ConfigurationProperties(prefix ="person")
public class Person{
privateString name;
privateint age;
private String[] address;
public Stringget Name(){
return name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public String[] getAddress(){
return address;
}
public void setAddress(String[] address){
this.address = address;
}
@Override
public String toString(){
return"Person{"+"name='"+ name +'\''+", age="+ age +'}';
}}

修改controller

@Autowired
private Person person;

System.out.println(person);
String[] address = person.getAddress();
for(String s : address){System.out.println(s);}

使用第三个获取数据时,会有警告,去掉报警提示:

 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

五.SpringBoot配置-项目内部配置文件加载顺序

加载顺序为下文的排列顺序,高优先级配置的属性会生效
• file:./config/:当前项目下的/config目录下
• file:./ :当前项目的根目录
• classpath:/config/:classpath的/config目录
• classpath:/ :classpath的根目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十一*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值