spring配置文件

springboot 的配置文件有多种方式,目前使用的是properties和yml两种格式的配置文件
如果properties和yml同名称文件时读取的顺序为properties–> yml ,properties和yml对应的同一个配置内容的时候会覆盖掉yml的内容,使用properties的配置内容

properties

server.port=8081

yml
数据格式对数据的缩进要求比较高,键值对的模式进行存储,以数据为中心的一个简洁配置文件

server:
  port: 8082
  address: 127.0.0.1
names: zhangsan
#缩进写法,参数引用
person:
  name: ${names} #zhansan
  age: 20
    
#行内写法
persons: {name: lisi,age: 20}


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

#纯量 单个的,不可再分的值
#单引号忽略转义字符
msg1: 'hello \n world'
#双引号识别转义字符
msg2: "hello \n world"

yml读取配置内容

1. @Value读取

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

2.Environment读取 使用自动注入

@Autowired
    private Environment environment;
    environment.getProperty("person.age")

3.@Component
@ConfigurationProperties注解注入

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

@Autowired
    private Person person;
System.out.println(person.toString());

profile配置

  1. profile是用来完成不同环境下,配置动态切换的功能,

  2. profile配置方式

    • 多profile文件方式,提供多个配置文件,每个代表一种环境。
      • application-dev.properties/yml 开发环境
      • application-test.properties/yml 测试环境
      • application-pro.properties/yml 生产环境
    • yml多文档方式
      • 在yml中使用 不需要—分割不同配置
  3. profile激活方式

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

内部配置文件加载顺序

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

下图为第三级和第四级的
在这里插入图片描述

外部配置文件加载顺序

  1. 使用命令行的方式进行修改配置内容
    命令行参数: java -jar xxx.jar --server.port:=81
  2. 使用外部文件的方式进行修改配置内容
    不与生成的jar包放在同一个级别的文件加载方式
    命令行参数: java -jar xxx.jar --spring.config.location=“绝对路径”
    放在与jar包同一个级别的加载不需要添加任何的配置文件就可以读取外部配置文件,外部配置的读取级别为带config目录的优先级更加高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dec_AS

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

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

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

打赏作者

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

抵扣说明:

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

余额充值