SpringBoot配置(二)

1. 配置文件分类

SpringBoot是基于约定的,所以很多配置都有默认值。但是如果想使用自己的配置替换默认配置的话,就可以使用properties 和 yml/yaml
在同一级目录下优先级为:properties > yml > yaml

application.properties:

server.port=8080

或 application.yml:

server:
  port: 8080

2. yaml

YAML:YAML Ain’t Markup Language,不是标记语言,是一种能够被电脑识别的数据序列化格式。
YML文件是以数据位核心的,比传统的xml方式更加简洁。
properties:

server.port=8080
server.address=127.0.0.1

xml:

<server>
	<port>8080</port>
	<address>127.0.0.1</address>
</server>

yml: 简洁,以数据为核心

server:
	port: 8080
	address: 127.0.0.1

基本语法

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

数据格式

  • 对象(map):键值对的集合
person:
	name: zhangsan
	age: 20
# 行内写法:
person: {name: zhangsan,age: 20}
  • 数组:一组按次序排列的值,使用“-”表示数组每个值
address:
	- beijing
	- shanghaai
# 行内写法:
address: [beijing,shanghai]
  • 纯量:单个的、不可再分的值
msg1: 'hello \n world'	# 单引号不会识别转义字符,会原样输出
msg2: "hello \n word"	# 双引号会识别转义字符,换行输出

参数引用

  • ${key}

3. 读取配置文件内容

1)@Value:属性值很多时,挨个获取比较麻烦

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

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

@Value("${address[0]}")
private String address1;

2)Environment:注入一个对象,使用getProperty获取属性值

@Autowired
private Environment env;

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

3)@ConfigurationProperties:对象与配置属性的绑定

@Component
@ConfigurationProperties(prefix = "person")  # 配置文件里的前缀,和类里的属性需要一一对应
public class Person{
	private String name;
	private int age;
	private String[] address;
}

4. profile

动态切换配置,同一套程序会被安装到不同环境,如:开发、测试、生产等。

1)profile配置方式

  • 多profile文件方式:提供多个配置文件,每个代表一种环境。
    • application.properties
      • spring.profiles.active=dev
    • application-dev.properties # 开发环境
    • application-test.properties # 测试环境
  • yml多文档方式 :在yml中使用 “- - -” 分隔不同配置
    • application.yml
    ---
    server:
    	port: 8081
    spring:
    	profiles: dev
    ---
    server:
    	port: 8082
    spring:
    	profiles: test	
    ---
    spring:
    	profiles:
    		active: dev
    

2)profile激活方式

  • 配置文件:在配置文件中配置:spring.profiles.active=dev
  • 虚拟机参数:在VM options指定:-Dspring.profiles.active=dev
  • 命令行参数:java -jar xxx.jar --spring.profiles.active=dev

5. 内部配置加载顺序

SpringBoot程序启动时,会从以下位置加载配置文件:
1)file:./config/ 当前项目下的/config目录下
2)file:./ 当前项目的根目录
3)classpath:/config/ classpath的/config目录
4)classpath:/ classpath的根目录
加载顺序为上文的排列顺序,高优先级配置的属性会生效。

6. 外部配置加载顺序

一共有17个地方可以进行配置,常用的:

外部配置 与 内部配置 联合使用。

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值