配置文件这里需要讲的东西很多,所以我写在了这里,但是这个是和上篇文章衔接的,所以看这篇文章,先看上篇文章笔记二

一、单独的配置文件

配置文件里面不能都写我们的类的配置吧,这样那么多类太杂了,所以我们写一个person.properties

person.name=Vae
person.age=32
person.boss=true
person.birth=1986/05/14
person.maps.k1=Vae
person.maps.k2=32
person.lists=许嵩,林俊杰,蜀云泉
person.dog.name=格洛米
person.dog.age=4

我非常非常喜欢yml,但是这里我尝试了yml格式的不行,只能properties

然后类里面这样写

@PropertySource(value = {"classpath:person.properties"})

你可以把application里面的都注释了,用person配置文件,是OK的

二、配置文件的随机数和占位符

server:
port: 8052 person:
name: 许嵩${random.uuid}
age: ${random.int}
boss: false
birth: 1995/11/19
maps: {k1: v1,k2: 12}
lists:
- 许嵩
- 林俊杰
dog:
name: ${person.name:默认的}-格洛米
age: 4

这个是我的yml文件,${random.UUID}这个就是随机数,${person.name:默认的}这个就是占位符,如果占位符取不到值的话,就采用默认的值

三、配置文件多环境支持

先说properties,我新建两个properties,格式是application加一个 - 后面接名字,这个是规定写法,例如

可以看到,我三个properties里面的端口号分别是8080,8082,8083 默认生效的是application.properties。那么怎么让其他的生效呢?这样写:

spring.profiles.active=dev

这就是设置活动的配置文件,这样运行一下,端口号就是8082了,这就是properties的多配置文件的切换,也就是所谓的多环境支持

下面来讲一下我最喜欢的yml,看看yml在多环境这个场景下是不是也值得喜欢

根据图可以看到,我写了三个,中间用 --- 分隔,三个横线,打了这个之后,文档就会分隔,你看下面 Document2/3  ,所以yml是根据 ---来分隔的,这个称之为多文档块

这样不用新建文件啊,yml还是那么爽,注意在使用yml的时候,把你的properties里面的server.port啥的注释掉,别忘了相同内容下有properties就没yml

我们运行一下,端口号就是8090,那怎么切换呢?还是一样的

我再次提醒,把properties注释了,再用yml

properties和yml的多环境配置配置文件以及讲完了,我还是喜欢yml,接下来介绍一下其他激活配置文件的方式,有两种:

1.命令行的方式,采用的是  --spring.profiles.active=dev

可以在这里配置:

也可以在这里配置:(先打jar包,然后执行jar包的时候执行)

2.虚拟机参数,写法是 -Dspring.profiles.active=dev     前面必须是-D  这是固定写法

总结一下,配置文件的多环境配置有两个

1.properties  2.yml

我最喜欢yml

多配置文件的激活方式有三种

1.配置文件自己写的active  2.命令行方式  3.虚拟机方式

四,配置文件的加载位置

文件的加载位置有4个,优先级依次往下,并不是最高优先级的加载了下面的就不加载了,全部都是会加载的,会互补

1.--file:./config/

2.--file:./

3.--classpath:./config/

4.--classpath:./

上面的4个地址优先级从高到低,至于他们四个的位置,我在下图标识出来了

加载位置还有外部加载,官网列出了17中外部加载的方式,我实在是不想看了...

大概的把上面的翻译一下,如下图:(保留了11个比较重要的,其中红色是重点看看的对象)

最后一部分是配置文件的自动配置原理,这个我看不懂,所以暂且搁置不讲了。

Spring Boot笔记三:配置文件的更多相关文章

  1. Spring Boot笔记(三) springboot 集成 Quartz 定时任务

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1. 在 pom.xml 中 添加 Quartz 所需要 的 依赖 <!--定时器 quartz- ...

  2. spring boot 笔记--第三章

    spring boot 笔记 第三章,使用Spring boot 构建系统: 强烈建议支持依赖管理的构建系统,Maven或Gradle 依赖管理: Spring Boot的每版本都会提供它支持的依赖列 ...

  3. spring boot / cloud (三) 集成springfox-swagger2构建在线API文档

    spring boot / cloud (三) 集成springfox-swagger2构建在线API文档 前言 不能同步更新API文档会有什么问题? 理想情况下,为所开发的服务编写接口文档,能提高与 ...

  4. Spring Boot笔记一

    Spring Boot 入门 Spring Boot 简介 > 简化Spring应用开发的一个框架:> 整个Spring技术栈的一个大整合:> J2EE开发的一站式解决方案: 微服务 ...

  5. spring boot 项目从配置文件中读取maven 的pom.xml 文件标签的内容。

    需求: 将pom.xml 文件中的版本号读取到配置文件并打印到日志中. 第一步: 在pom.xml 中添加以下标签. 第二步: 将version 标签的值读取到配置文件中 这里使用 @@  而不是  ...

  6. Spring Boot 2 (三):Spring Boot 2 相关开源软件

    Spring Boot 2 (三):Spring Boot 2 相关开源软件 一.awesome-spring-boot Spring Boot 中文索引,这是一个专门收集 Spring Boot 相 ...

  7. Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

    Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件.application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置.b ...

  8. Spring Boot笔记二:快速创建以及yml文件自动注入

    上个笔记写了如何自己去创建Spring boot,以及如何去打jar包,其实,还是有些麻烦的,我们还自己新建了几个文件夹不是. Idea可以让我们快速的去创建Spring boot应用,来看 一.快速 ...

  9. Spring Boot 笔记 (1) - Maven、基本配置、Profile的使用

    一. Spring Boot 简介 开箱即用的一站式 Java EE 解决方案 Spring 技术栈的大整合 核心问题 暂时无法回答 Spring Boot 和 SOA 有什么区别? Spring B ...

随机推荐

  1. 利用kali破解wifi密码

    准备工具 1.笔记本 2.USB无线上网卡(必备) 3.kali系统 4.密码字典 第一种方法 暴力破解法 何为暴力破解呢,其实就是一个一个密码去试,直到正确的密码. 现在的wifi一般加密都是: 1 ...

  2. BZOJ5119 生成树计数(prufer+生成函数+分治FFT+多项式exp)

    https://www.luogu.org/problemnew/solution/P4002 神树的题解写的很清楚了.稍微补充: 1.[x^i]ln(A(ax))=a^i[x^i]ln(A(x)), ...

  3. [AHOI2008]紧急集合 / 聚会

    题目描述 欢乐岛上有个非常好玩的游戏,叫做“紧急集合”.在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两个等待点,且通过这些道路可以走遍所有的等待点,通过道路从一个点到另一个点要 ...

  4. MT【250】距离0-7

    是否存在一个正方体,它的8个顶点到某一个平面的距离恰好为$0,1,2,3,4,5,6,7$ ?若存在指出正方体与相应的平面的位置关系.不存在说明理由. 分析:设平面$\alpha$的单位法向量为$\o ...

  5. 正睿 2019 省选附加赛 Day10

    A 核心就是一个公式 \[\sum_{i = 0}^{k} S(k, i) \tbinom{x}{i} i\] S是第二类斯特林数 递推公式 \(S_2(n,k)=S_2(n−1,k−1)+kS_2( ...

  6. Nifi flow 备份恢复

      1. 备份  copy 下面的文件到本地: conf/flow.xml.gz   2. 恢复 新安装一个nifi的环境,把这个文件copy到conf文件夹下 运行nifi, 在界面上create ...

  7. photoshop学习4

    蒙版 路径学习 一.蒙版 蒙版可以理解为一层在图层上的遮挡布,为什么要将图层遮住呢,有什么好处.好处在于容易编辑. 在一个图层上建立一个蒙版之后,可以用再删掉不需要的部分,从而露出原图层的部分.那么这 ...

  8. 如何查看Linux操作系统版本?

    参考地址:http://www.ggat.cn/newsInfo.html/71 如何查看Linux操作系统版本? 1. 查看内核版本命令: $ cat /proc/version $ uname - ...

  9. zabbix3.2监控mysql

    应用环境:ZABBIX一款强大的企业级可分布式的开源监控工具,从2.2版本开始支持MySQL监控(自带监控模板), 不过,默认添加MySQL模板后是无法使用的,这里小记一下部署监控MySQL的简单全过 ...

  10. nodejs的某些api~(五) HTTP模块

    HTTP的模块是nodejs最重要的模块(应该是),最近在看HTTP权威指南,重新过了一遍http协议和web客户端.再来看这个http. HTTP构建于TCP之上,属于应用层协议,继承自tcp服务器 ...