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相关推荐

  1. Idea Spring Boot配置文件.yaml或.properties不能自动提示的有效解决办法

    SpringBoot项目的配置文件.yaml/.yml/.properties文件编写的时候没有自动提示,网上的解决办法五花八门,不一定适合具体个人的IDE环境,下面总结一套能解决绝大部分情况的方案: ...

  2. spring boot使用yaml替代properties

    spring boot使用yaml替代properties 无需导入相关jar因为在新建spring boot 项目时会自动引入snakeyaml,从而自动实现对yaml的支持. 例子: enviro ...

  3. VINS-mon代码解析——启动文件lauch文件与参数配置文件yaml介绍

    文章目录 前言 启动文件launch 参数配置文件yaml 1.通用参数 2.相机的基础信息 3.imu和相机之间的外参 4.在节点/feature_traker中需要用到的参数 5.在节点/vins ...

  4. Spring Boot 配置文件 yml与properties

    原文链接:https://blog.csdn.net/qq_33524158/article/details/79600434 1.配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固 ...

  5. jackson 读取多文件_Spring Boot系列之读取配置

    使用SpringBoot框架开发,读取配置是少不了的,那么你会读取配置吗?你会写配置吗?List?Map? 1 目的 本节我们要解决如下几个问题: 如何使用Spring Boot读取配置文件?有哪些方 ...

  6. mysql properties文件路径_读取web项目properties文件路径 解决tomcat服务器找不到properties路径问题...

    1.需求:有时候我们产品经理给我们的需求是会不断变化的,例如数量是1000现在变成500,我们不可以去改代码吧,这样很麻烦,所以就可以改配置文件properties(这个数据库链接一样),当然也有js ...

  7. bootstrap文件不能被识别_Spring Boot 配置文件 bootstrap / application 到底有什么区别?...

    用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap (.yml 或者 .properties) application (.yml 或者 .pr ...

  8. springboot项目识别不了pom.xml文件_Spring Boot Web 项目教程,Spring Boot的环境配置

    这节课,我们来学习一下SpringBoot的环境配置,在SpringBoot中,所有的配置都写在application.properties中: 我们启动项目,默认端口是8080,我们现在给他配置一个 ...

  9. 打包tomcat没有xml文件_Spring Boot 项目打包 War 并部署到 Tomcat

    之前使用 SpringBoot 所做的开发,都是将项目打包成 Jar 的,但是如果是作为一个 Web 项目,最好是将项目打包成 War. 1. Jar 包和 War 包的区别 1.概念 jar 包:J ...

  10. fastdfs删除过期文件_Spring Boot 系列:使用 Spring Boot 集成 FastDFS

    这篇文章我们介绍如何使用 Spring Boot 将文件上传到分布式文件系统 FastDFS 中. 这个项目会在上一个项目的基础上进行构建. 1.pom 包配置 org.csource fastdfs ...

最新文章

  1. php设置backlog,高并发调优backlog多大合适?
  2. UltraTextEditor
  3. 查看mysql,apache,php,nginx编译参数
  4. python数据科学导论 中南_Python数据科学导论
  5. 二分类最优阈值确定_分类模型评价标准,AUC还是Macro F1?
  6. [硬件]SICK LMS111激光扫描仪使用
  7. Concurrent包工具类使用
  8. 上下界网络流-无源汇可行流与有源汇最大流
  9. 实战Cisco路由器交换机各型号密码恢复
  10. (12)vue.js 修饰符
  11. SERVER 2008 +MSSQL2008+SCCM安装记录
  12. 多种嵌入式文件系统移植集合
  13. 本地如何使用oracle数据库,使用sqlplus连接oracle本地数据库的方式
  14. CSS:光标跟随实现
  15. 矩阵标准型的系数是特征值吗_高等代数|第五章 二次型二次型及其标准型
  16. 【PS】如何把图片变成透明
  17. Linux系统访问Windows(本机)的Navicat数据库
  18. 中国动漫产业落后的症结
  19. 卖保险的都搞起返佣推广了!
  20. 【转】git中如何忽略xcuserstate

热门文章

  1. 22. 用户身份切换用户的特殊 shell与 PAM模块
  2. matlab中删除照片_照片也有隐私,教你如何批量删除数码照片中的相机、光圈和地理位置等 EXIF 信息...
  3. OpenStack组件——Nova计算资源管理
  4. Python3序列赋值、序列解包详解(上)
  5. idea连接docker实现一键部署
  6. Good Bye 2018 (A~F, H)
  7. [加密]SSL/TLS原理详解
  8. POI中设置Excel单元格格式样式(居中,字体,边框等)
  9. javascript中 try catch finally 的使用
  10. Asp.net中把DataTable或DataGrid导出为Excel