springBoot(2):Properties和YAML配置文件

一、配置文件的生效顺序,会对值进行覆盖

1. @TestPropertySource 注解

2. 命令行参数

3. Java系统属性(System.getProperties())

4. 操作系统环境变量

5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource

6. 在打包的jar外的应用程序配置文件(application.properties,包含YAML和profile变量)

7. 在打包的jar内的应用程序配置文件(application.properties,包含YAML和profile变量)

8. 在@Configuration类上的@PropertySource注解

9. 默认属性(使用SpringApplication.setDefaultProperties指定)

二、配置随机值

roncoo.secret=${random.value}

roncoo.number=${random.int}

roncoo.bignumber=${random.long}

roncoo.number.less.than.ten=${random.int(10)}

roncoo.number.in.range=${random.int[1024,65536]}

读取使用注解:@Value(value = "${roncoo.secret}")

注:出现黄点提示,是要提示配置元数据,可以不配置

三、配置属性占位符

当application.properties里的值被使用时,它们会被存在的Environment过滤,所以你能够引用先前定义的值(比如,系统属性)。

roncoo.name=www.roncoo.com

roncoo.desc=${roncoo.name} is a domain name

例子:

application.properties配置文件:

##################################服务器配置##################################
server.port = 80
server.tomcat.uri-enconding = UTF-8
##################################随机数配置##################################
#32位的随机数
roncoo.secret=${random.value}
#数字随机数
roncoo.number=${random.int}
roncoo.number2.less.than.ten=${random.int(10)}
roncoo.number3.in.range=${random.int[1024,65536]}
##################################配属性占位符配置##################################
roncoo.name=zhangsan
roncoo.desc=${roncoo.name} is a domain name

四.Application属性文件,按优先级排序,位置高的将覆盖位置低的

1. 当前目录下的一个/config子目录

2. 当前目录

3. 一个classpath下的/config包

4. classpath根路径(root)

这个列表是按优先级排序的(列表中位置高的将覆盖位置低的)

例子,基于上面例子,复制一份application.properties配置文件放在classpath下的/config包下,如下:

五. 配置应用端口和其他配置的介绍

#端口配置:

server.port=8090

#时间格式化

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

#时区设置(亚洲重庆)

spring.jackson.time-zone=Asia/Chongqing

注意:默认的时区不是中国的,上面配置的是亚洲重庆

如果设置时区时:

设置时区为亚洲重庆:

六. 使用YAML代替Properties

注意写法:冒号后要加个空格

时间: 2024-07-29 14:30:51

springBoot(2):Properties和YAML配置文件的相关文章

SpringBoot(3)—配置文件详解:Properties和YAML

一.配置文件优先级加载机制 SpringBoot项目启动会扫描以下位置的application.properties或者application.yml作为默认的配置文件 1.工程根目录:./config/ 2.工程根目录:./ 3.classpath:/config/ 4.classpath:/ 加载的优先级顺序是从上向下加载,并且所有的文件都会被加载,高优先级的内容会覆盖低优先级的内容,形成互补配置 PS:不过需要注意的是在工程根路径下或者根路径的config下面的配置文件,在工程打包时候不会

spring-boot读取props和yml配置文件

最近微框架spring-boot很火,笔者也跟风学习了一下,废话不多说,现给出一个读取配置文件的例子. 首先,需要在pom文件中依赖以下jar包 Java代码 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

springboot加载外部的配置文件

package com.liuchao; import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplicationRunListener; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.core.Ordered; import o

springboot整合mybatis时候的配置文件需要进行注意的地方

其次在application.properties文件中配置mybatis的mapper文件位置,和实体类的包路径,还有最好加上驼峰命名规范 ####mybatis配置 # 注意注意 mybatis.mapper-locations=classpath:edu/hohai/chapter1/gt/mapper/*.xml #mybatis.mapper-locations=classpath:mapper/*.xml #这种方式需要自己在resources目录下创建mapper目录然后存放xml

Properties读取项目配置文件

1.Properties Properties(Java.util.Properties)主要用于读取Java的配置文件 在平时的开发工程,有时候需要配置一些连接信息.比如数据库之类的东东,因为大多数都会把相应的信息配置在Properties文件中或者是在XML中.其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是"键=值"的格式,文本注释信息可以用"#"来注释. 它提供了几个主要的方法: 1. getProperty ( String k

JAVA之IO技术相关Properties类 存储配置文件信息

package ioTest.io3; /* * Properties存储配置文件信息 * 1.文件信息--------------------------- * 2.根据文件信息获取key和value---|流| * 3.将key,value的之对应存储到properties对象中 */ import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOu

使用Properties去读取配置文件,并获得具体内容值

有时候,写了一个配置文件,需要知道读出来的内容对不对,我们需要测试一下,看看读出来的跟我们要的是不是一样.这里写了一个工具类,用来读取配置文件里面的内容. 1.新建一个java工程,导入需要的jar包,新建一个配置文件 如下图: 2.配置文件的内容: 1 driver=com.mysql.jdbc.Driver 2 url=jdbc:mysql://localhost:3306/csdn 3 user=root 4 pwd=123456 5 initsize=1 6 maxactive=1 7

Go语言之读取yaml配置文件,转换成struct结构,json形式输出

1.例子1 1.1.yaml文件内容如下: host: localhost:3306 user: root pwd: 123456 dbname: test 1.2.代码如下: //将yaml文件,转换成对象,再转换成json格式输出 package main import ( "encoding/json" "fmt" "gopkg.in/yaml.v2" "io/ioutil" ) //定义conf类型 //类型里的属性,

saltstack主机管理项目:编写插件基类-获取主机列表-提取yaml配置文件(四)

一.编写插件基类 1.目录结构 1.我是如何获知我有多少种系统? 当客户端第一连接过来的时候,我就已经把这些文件存下来了 ,存在到哪里了?存到数据库了 每次对主机发送命令的动作时,我从库里把数据取出来,我去判断有几种就可以,每个模块执行之前都要这样的判断, 直接把用户分配给了不同的模块,这就变成我了我每个模块都要写一边(重复劳动) 写一个公共的类,就是提取这些,你一定要有一个公共的类,他的作用是为了规范其他的模块 2.运行结果截图 cmd和state只要一执行就会自动去提取主机 二.获取主机列表