SpringBoot简单读取配置文件

一、配置文件简单介绍

SpringBoot配置文件通常为如下三种,其中yml和yaml类似:

application.properties
application.yaml
application.yml

为什么要使用上面的配置文件。

我们在使用第三方技术的时候,如果将相关参数硬编码,是可以正常运行的,但当参数需要改动的

时候就会变得很繁琐,不方便管理,例如当参数发生改动时:

1、我们要从项目中众多类当中定位到需要修改参数的位置(繁琐)。

2、必须对源代码进行修改,重新编译运行(这个过程还可能会出错)。

所以,可以将一些配置信息丢到配置文件里面,进行统一管理。

二、简单读取使用示例

下面展示两种简单读取的示例:

        1、通过@ConfigurationProperties注解读取配置文件使用

1、在配置文件里面设置要放置的参数

yml和yaml中格式是这样的:
Dog:
  pro:
    name: 小狗
    age: 18


properties中格式是这样的:
Dog.pro.name: 小狗
Dog.pro.age: 18

2、使用@ConfigurationProperties读取配置参数
@Data
@Component
@ConfigurationProperties(prefix = "dog.pro")
public class Dog {
    private String name;
    private String age;
}


3、测试 打印 dog 值为:Dog(name=小狗, age=18)
@SpringBootTest
public class TestDog {
    @Autowired
    private Dog dog;
    @Test
    public void printDog() {
      System.out.println(dog);
    }
}

       

        2、通过@value注解读取配置文件

 用value读取,其他如上代码不变,结果相同
 @Data
 @Component
 public class Dog {
     @Value("${Dog.pro.name}")
     private String name;
     @Value("${Dog.pro.age}")
     private Integer age;
 }

注意点:

1、springboot对于这三个配置文件的读取顺序为yml 、ymal、properties,如果在不同类型配置文

件对同个属性对象设定值,那么后读取的配置文件会把前面设定的值给覆盖掉,比如上面的例子如

果properties和yml配置文件都存在,properties将Dog的name设定为小狗,yaml将name设定为小

猪,最后的结果是小狗会将小猪给覆盖掉;

2、@ConfigurationProperties需要和@Component注解一起使用,不然可能会报错。

3、配置文件读取中文出现乱码,可以去设置编码格式。

4、@value和@ConfigurationProperties有区别。@ConfigurationProperties语法比较松散,比如可

以下划线转驼峰匹配,配置文件中 dog-name 可以被读取到类属性 dogName中等,而@value不

行。

5、可以再建个application-dev.yml,开发环境的配置,将application.yml中数据放入application-dev.yml,方便软件环境变换切换配置文件。

 //application.yml
 dog:
     pro:
       name: ${dog.name}
       age: ${dog.age}
       
 //application-dev.yml
   dog:
      name: 小
      age: 18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值