栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot从yml配置文件中读常用参数值实例方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot从yml配置文件中读常用参数值实例方法

SpringBoot现在基本上都是使用application-XXX.yml(生产环境为pro,开发测试环境为dev)来配置项目中的一些配置条件,在springboot中还可以通过从yml文件中将yml中的数据直接读取出来。

1.yml文件(这里设置参数的时候往往设置两层前缀,避免在调用的时候该属性中的部分参数名与计算机中的某些名字冲突)

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

2.在JavaBean中读取参数值,并且将读取出来的值赋予到指定的属性上


@Component
@ConfigurationProperties(prefix = "testdemo.person")
public class Person {

  private String lastName;
  private Integer age;
  private Boolean boss;
  private Date birth;

  private Map maps;
  private List lists;
  private Dog dog;
}

 3.pom.xml文件中导入依赖配置(注:这里可能需要启动一下项目,使之生效)


    
      org.springframework.boot
      spring-boot-configuration-processor
      true
    

4.@value 注解获取yml配置文件中的数据,以及@Validated进行数据校验

@Component
@Validated
public class Person {

  

  //lastName必须是邮箱格式
  @Email
  @Value("${person.last-name}")
  private String lastName;
  @Value("#{11*2}")
  private Integer age;
  @Value("true")
  private Boolean boss;

  private Date birth;
  private Map maps;
  private List lists;
  private Dog dog;

5.@ConfigurationProperties(prefix = "person") 和 @value的区别

|          | @ConfigurationProperties       | @Value |
| ----------          |------------------------          | ------ |
| 功能         | 批量注入配置文件中的属性    | 一个个指定 |
| 松散绑定(松散语法)   | 支持           | 不支持 |
| SpEL          | 不支持          | 支持 |
| JSR303数据校验     | 支持           | 不支持 |
| 复杂类型封装       | 支持           | 不支持 |

6.总结

配置文件yml还是properties他们都能获取到值;

如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;

如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;

以上就是本次介绍的全部相关知识点,感谢大家的学习和对考高分网的支持。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号