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中读取参数值,并且将读取出来的值赋予到指定的属性上
/** * 将配置文件中配置的每一个属性的值,映射到这个组件中 * @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定; * prefix = "testdemo.person":配置文件中哪个下面的所有属性进行一一映射(yml文件中的参数名要和JavaBean中的属性名保持一致) * * 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能; * */ @Component @ConfigurationProperties(prefix = "testdemo.person") public class Person { private String lastName; private Integer age; private Boolean boss; private Date birth; private Mapmaps; private List
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
5.@ConfigurationProperties(prefix = "person") 和 @value的区别
| | @ConfigurationProperties | @Value |
| ---------- |------------------------ | ------ |
| 功能 | 批量注入配置文件中的属性 | 一个个指定 |
| 松散绑定(松散语法) | 支持 | 不支持 |
| SpEL | 不支持 | 支持 |
| JSR303数据校验 | 支持 | 不支持 |
| 复杂类型封装 | 支持 | 不支持 |
6.总结
配置文件yml还是properties他们都能获取到值;
如果说,我们只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value;
如果说,我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用@ConfigurationProperties;
以上就是本次介绍的全部相关知识点,感谢大家的学习和对创新互联的支持。
本文名称:SpringBoot从yml配置文件中读常用参数值实例方法
标题链接:http://cdiso.cn/article/pighcg.html