properties文件_spring boot 配置文件yaml和properties
spring boot 的所有配置都在application.properties或application.yaml的文件中,配置文件生效的目录的顺序是:
1、A /config 打包后jar包所在目录的目录.
2、打包后的当前目录
3、classpath:/config 目录
4、classpath根目录
默认会读取application的配置文件名,当然,默认的文件名和默认的配置文件的路径都是可以修改的,但是意义不是特别大,如下:
#修改配置文件的名称application改为myapp
java -jar myproject.jar --spring.config.name=myapp
#修改配置文件的路径同时可以指定新的配置文件名
java -jar myproject.jar --spring.config.location=classpath:/default.properties,file:/home/override.properties
配置文件变量之间引用值如下:
app.name=MyApp
app.description=${app.name} is a Spring Boot application
在配置文件中生成随机值
my.secret=${random.value}
my.number=${random.int}
my.bignumber=${random.long}
my.uuid=${random.uuid}
my.number.less.than.ten=${random.int(10)}
my.number.in.range=${random.int[1024,65536]}
配置文件激活策略,在项目开发使用的时候往往需要配置两个配置文件,一个用于开发阶段,一个用于生产阶段,两个阶段的配置文件是不同的,这个时候我们可以定义三个文件
application-prod.properties,application-develop.properties,application.properties三个文件,我们在application.properties里面通过设置spring.profiles.active=prod或者develop来选择激活哪个文件,同时我们可以在部署jar工程的时候通过命令行来指定具体激活哪个文件,而且命令行的优先级是最高的。如下:
java -jar app.jar --spring.profiles.active=prod
在spring boot中自定义配置文件,springboot建议默认使用java bean的方式来绑定,这也和springboot中源代码中所有的配置的策略是一致的。如果配置内容在application.properties或者application-prod.properties等文件中,是会自动加载到spring的properties环境中的,可以使用如下方式进行加载:
同事在boot application能够扫描到的配置文件上面加上@EnableConfigurationProperties(AppProperties.class)如启动类:
则可以自动映射到配置文件。同事boot也支持绑定一个配置到第三方提供的一个类所生成的bean中,如下所示:
@ConfigurationProperties(prefix = "bar")
@Bean
public BarComponent barComponent() {
...
}
上面所讲的配置文件绑定到bean字段上遵循以下规则:
person.firstName bean和配置文件都采用驼峰命名
person.first-name 配置文件中划线,bean中驼峰
person.first_name 配置文件下划线,bean中驼峰
PERSON_FIRST_NAME 推荐系统环境变量中大写加下划线,bean中驼峰。
如果配置文件是自己自定义的配置文件,需要使用@PropertySource("classpath:myconfig.properties")加载自己定义的properties文件,需要加载@Configuration的配置类上,同事配置文件也支持数据校验,使用javax.validationl接口来做,boot中默认的实现是hibernate-validator,如下图所示:在类上加上@Validated注解,标志这个类需要校验,使用@NotEmpty,@Size等等的注解来做校验,当有嵌套的配置时候,使用@Valid来校验嵌套的实体。、,所有的校验在启动的时候都会进行,如校验失败则会启动失败。
使用yaml代替properties,yaml格式的文件近几年使用越来越多,如Linux操作系统的一些配置,docker-compose的一些配置,都是采用yaml格式,主要是由于yaml以json格式的字符串展示,层次结构比较明显。相应的不同的语言来处理yaml也有了相应的api包,但是个人来说yaml和properties用起来都一样。那么spring boot中也已经从1.5.x的版本已经支持yaml配置文件了
yaml需要注意的几点:
key和value之间用冒号分隔,并且冒号之后必须有空格。
一个文件里面,key不能重复,除非用---代表配置块。
yaml中的数组需要用-来表示
接下来我们看一个yaml来体验一下:
yaml配置和properties大小雷同在boot中写多个yaml文件,选择激活哪个,单是不能使用@PropertySource来加载自定义配置文件。
properties文件_spring boot 配置文件yaml和properties相关推荐
- Idea Spring Boot配置文件.yaml或.properties不能自动提示的有效解决办法
SpringBoot项目的配置文件.yaml/.yml/.properties文件编写的时候没有自动提示,网上的解决办法五花八门,不一定适合具体个人的IDE环境,下面总结一套能解决绝大部分情况的方案: ...
- spring boot使用yaml替代properties
spring boot使用yaml替代properties 无需导入相关jar因为在新建spring boot 项目时会自动引入snakeyaml,从而自动实现对yaml的支持. 例子: enviro ...
- VINS-mon代码解析——启动文件lauch文件与参数配置文件yaml介绍
文章目录 前言 启动文件launch 参数配置文件yaml 1.通用参数 2.相机的基础信息 3.imu和相机之间的外参 4.在节点/feature_traker中需要用到的参数 5.在节点/vins ...
- Spring Boot 配置文件 yml与properties
原文链接:https://blog.csdn.net/qq_33524158/article/details/79600434 1.配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固 ...
- jackson 读取多文件_Spring Boot系列之读取配置
使用SpringBoot框架开发,读取配置是少不了的,那么你会读取配置吗?你会写配置吗?List?Map? 1 目的 本节我们要解决如下几个问题: 如何使用Spring Boot读取配置文件?有哪些方 ...
- mysql properties文件路径_读取web项目properties文件路径 解决tomcat服务器找不到properties路径问题...
1.需求:有时候我们产品经理给我们的需求是会不断变化的,例如数量是1000现在变成500,我们不可以去改代码吧,这样很麻烦,所以就可以改配置文件properties(这个数据库链接一样),当然也有js ...
- bootstrap文件不能被识别_Spring Boot 配置文件 bootstrap / application 到底有什么区别?...
用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap (.yml 或者 .properties) application (.yml 或者 .pr ...
- springboot项目识别不了pom.xml文件_Spring Boot Web 项目教程,Spring Boot的环境配置
这节课,我们来学习一下SpringBoot的环境配置,在SpringBoot中,所有的配置都写在application.properties中: 我们启动项目,默认端口是8080,我们现在给他配置一个 ...
- 打包tomcat没有xml文件_Spring Boot 项目打包 War 并部署到 Tomcat
之前使用 SpringBoot 所做的开发,都是将项目打包成 Jar 的,但是如果是作为一个 Web 项目,最好是将项目打包成 War. 1. Jar 包和 War 包的区别 1.概念 jar 包:J ...
- fastdfs删除过期文件_Spring Boot 系列:使用 Spring Boot 集成 FastDFS
这篇文章我们介绍如何使用 Spring Boot 将文件上传到分布式文件系统 FastDFS 中. 这个项目会在上一个项目的基础上进行构建. 1.pom 包配置 org.csource fastdfs ...
最新文章
- php设置backlog,高并发调优backlog多大合适?
- UltraTextEditor
- 查看mysql,apache,php,nginx编译参数
- python数据科学导论 中南_Python数据科学导论
- 二分类最优阈值确定_分类模型评价标准,AUC还是Macro F1?
- [硬件]SICK LMS111激光扫描仪使用
- Concurrent包工具类使用
- 上下界网络流-无源汇可行流与有源汇最大流
- 实战Cisco路由器交换机各型号密码恢复
- (12)vue.js 修饰符
- SERVER 2008 +MSSQL2008+SCCM安装记录
- 多种嵌入式文件系统移植集合
- 本地如何使用oracle数据库,使用sqlplus连接oracle本地数据库的方式
- CSS:光标跟随实现
- 矩阵标准型的系数是特征值吗_高等代数|第五章 二次型二次型及其标准型
- 【PS】如何把图片变成透明
- Linux系统访问Windows(本机)的Navicat数据库
- 中国动漫产业落后的症结
- 卖保险的都搞起返佣推广了!
- 【转】git中如何忽略xcuserstate
热门文章
- 22. 用户身份切换用户的特殊 shell与 PAM模块
- matlab中删除照片_照片也有隐私,教你如何批量删除数码照片中的相机、光圈和地理位置等 EXIF 信息...
- OpenStack组件——Nova计算资源管理
- Python3序列赋值、序列解包详解(上)
- idea连接docker实现一键部署
- Good Bye 2018 (A~F, H)
- [加密]SSL/TLS原理详解
- POI中设置Excel单元格格式样式(居中,字体,边框等)
- javascript中 try catch finally 的使用
- Asp.net中把DataTable或DataGrid导出为Excel