springboot配置文件yml写法简介

springboot配置文件常用知识点

一、配置文件

SpringBoot使用一个全局的配置文件,配置文件名是固定的;

  • application.properties
  • application.yml

1、yml语法格式

## 基本格式
server:
    port: 8080
    
## 值的写法格式
user:
    name: zhangsan
    age: 20
## 或者采用行内写法
user: {name: zhangsan,age: 20}

## 数组写法
pets:
 - cat
 - dog
 - pig
## 或者采用行内写法
pets: [cat,dog,pig]

yml文件注意点

  • 1."":双引号,会转译字符串里的特殊字符:如 /n 会被转译成换行
  • 2.’’:单引号,不会转译: 如 /n 输出就是 /n

2、配置文件注入

复杂配置文件样式

person:
    lastName: hello
    age: 18
    boss: false
    birth: 2017/12/12
    maps: {k1: v1,k2: 12}
    lists:
        ‐ lisi
        ‐ zhaoliu
    dog:
        name: 小狗
        age: 12

java引入方式

	/**
	* 将配置文件中配置的每一个属性的值,映射到这个组件中
	* @ConfigurationProperties(prifix=""):默认从全局配置文件中获取
	* @PropertySource(value={classpath: 某地址}) :指定需要映射的配置文件,无此注解默默认映application.yml
	*/
	@PropertySource(value = {"classpath: person.yml"})
	@Component
	@ConfigurationProperties(prefix = "person")
	public class Person {
	    private String lastName;
	    private Integer age;
	    private Boolean boss;
	    private Date birth;
	    private Map<String,Object> maps;
	    private List<Object> lists;
	    private Dog dog;
	}

除此以外,还有@Value引入方式

    //@Value("${person.last‐name}")
    private String lastName;
    //@Value("#{11*2}")
    private Integer age;
    //@Value("true")
    private Boolean boss;

3、配置文件注入值校验

详见代码样例

@Component
@ConfigurationProperties(prefix = "person")
@Validated  // 开启校验
public class Person {

    @Email  // 下面的email属性必须是邮箱格式
    private String email;
    
    @NotNull
    @Range(min = 20, max = 50, message = "age应该在[20,50]之间")
    private Integer age;
    
    @NotEmpty(message = "书名不能为空")
    @Length(max = 100, message = "书名不能超过100")
    private Boolean bookName;
    
    private Date birth;
    
    private Map<String,Object> maps;
    
    @ListNotHasNull(message = "List 中不能含有null元素")
    private List<Object> lists;
    
}

4、配置文件占位符

概念:可以使用占位符来获取之前配置的值

spring:
    port: 8080
    
##如下面的配置需用到spring配置的端口号,且始终需要与端口号一致,可以使用占位符来实现
samething:
  instance-id: localhost:${server.port}
  
## 也可以指定随机值
person:
    name: ${random.uuid}
    age: ${random.int}
    birth: 

5、Profile文件

  • 1.用途:在一个模块中,针对不同的运行环境(开发、测试、生成)使用不用的配置文件,文件名格式application-{prifile}.properties/yml;项目默认是使用application.yml
  • 2.yml文件支持多文档块方式,用三个英文下“-”的行区分
server:
    port: 8080
spring:
    profiles:
        active: dev
        
---

server:
    port: 8081
spring:
    profiles:
        active: test
        
---

server:
    port: 8083
spring:
    profiles:
        active: prod

6、配置文件加载位置顺序

springboot会默认按照从上往下顺序在以下位置扫码application.yml或者application.properties文件

  • file:./config/
  • file:./
  • classpath:/config/
  • classpath:

我们还可以通过spring.config.location来改变默认的配置文件位置
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默
认加载的这些配置文件共同起作用形成互补配置;

java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --spring.config.location=G:/application.properties

7、命令行启动形式

所有的配置都可以在命令行上进行指定

## 指定启动端口号
java -jar spring-boot-02-config-02-0.0.1-SNAPSHOT.jar --server.port=8087 

## 指定启动映射的配置文件
java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

如有错误,欢迎指正

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值