Spring Boot 配置_yaml语法介绍 day02
一、Spring Boot 的全局配置文件(application.properties、application.yml)
1.这两种配置文件是SpringBoot 支持的对默认配置修改的格式。命名和格式是一样的,不能随意改名。我们来分别说一下这两种格式的配置文件对SpringBoot配置及区别。
这两个配置文件的作用:SpringBoot在底层已经帮我们默认配置好,我们可以通过配置文件来修改默认的配置,如对Tomcat的端口配置等等。
2.首先来说一下的是application.properties这个文件。(我们来修改tomcat端口)

2.1启动主程序,这是tomcat控制台打印的信息

2.2修改成功

3.对于application.yml这个文件而言,修改tomcat端口。(注释掉application.properties的端口配置)
3.1在application.properties同一个路径下新增一个"application.yml",如下图。

添加修改tomcat代码。

运行效果

访问效果(还是一样的效果)

这两种简单的配置比较,application.yml比较简洁、配置简单。推荐使用。以下着重介绍application.yml语法。
二、yaml 语法(大小写敏感)
1.yaml语法的精髓在与对空格的使用,可谓使用得淋漓尽致。
yaml语法主要是K:(冒号后面是空格) V值的形式(注意空格的使用)
空格的另一个重要的使用时对配置文件的层级关系的控制,如:
server:
port: 8090
address: /hello -->这:后都有空格,空格也控制层级关系
2.yaml对不同类型的值的操作:(只要记得 空格是神奇的存在)
对于(数值、字符串、和布尔)对于配置的值是字符串,不用双引号和单引号,直接写就可以了,若使用双引号的话会将特殊字符转义,使用单引号则会原样输出,不会对
特殊字符转义
例如:name: "小二\n 过来"-------------------->会这样输出 小二 换行 过来
name: '小二\n 过来'--------------------->会这样输出 小二 \n 过来(没有变化)
对于K : V形式(对象、Map)键值对类型
方法一、对象和Map占一行,属性和值会在另一行
Person:
name: lcaiqin
age: 23
方法二、将所用配置写在一行里面
Person: {name: lcaiqin,age: 23}
//--->>注意空格的使用
对于数组(List,Set)
方法一、使用- value的形式。如:注意是- 空格 值
Pets:
- dog
- cat
- pig
方法二、使用一行解决。注意是:冒号 空格
Pets: [cat,dog,pig]
三、yaml配置文件的值注入
在实体类中编写如下代码:
@Component //@ConfigurationProperties在Spring容器中运行需要组件的支持
@ConfigurationProperties(prefix = "person") //告诉SpringBoot的所有属性和配置文件映射起来。prefix = "person"指从配置文件的什么位置映射
public class Person { //基本类型
private String name;
private Integer age;
private Boolean Boos; //对象
private Cart cart;
private Map<String,Object> map; //数组
private List<Object> list;
写法一、在application.yml中输入如下代码。
person:
name: 独而不孤
age: 23
Boos: true
cart:
name: 奥迪
color: 白色
map:
k1: v1
k2: v2
list:
- apple
- pear
- eat
写法二、在application.yml中输入如下代码。(一行元素搞定)
person:
name: 独而不孤
age: 23
cart: {name: 奥迪,color: 白色}
list: [apple,pear,eat]
map: {k1: v1,k2: v2}
Boos:true
四、application.properits配置文件注入
bean中代码:
//基本类型
@Value("${person.name}") //使用el表达式,从配置文件中取出
private String name;
@Value("${person.age}")
private Integer age;
private Boolean Boos;
application.propeerties代码:
person.age=23
person.boos=true
person.cart.name=奥迪
person.cart.color=白色
person.name=独而不孤
person.map.k1=值1
person.map.k2=值2
person.list.list1=apple
运行效果:乱码
解决乱码:"File">>"Settings">>"Editor">>"File Encodings"

这样就可以了。
五、@Value和@ConfigurationProperties的比较(@ConfigurationPropertis要配合@Component)
@ConfigurationPropertis |
@Value |
|
功能上 |
对所有的属性进行注入值 |
一个一个注入值 |
语法复杂程度 |
简单(可以一行一个一元素) |
元素冗余 |
SpEL |
不支持 |
支持 |
JSR303数据校验 |
支持 |
不支持 |
复杂类型封装 |
支持 |
不支持 |
个人觉得(除了需要对个别的属性赋值之外)都建议使用@ConfigurationProperties
1.对JSR303数据校验
@Component
@ConfigurationProperties(prefix = "person")
@Validated -->加入此标签
public class Person { //基本类型
private String name;
private Integer age;
private Boolean Boos;
运行效果

Spring Boot 配置_yaml语法介绍 day02的更多相关文章
- Spring Boot 配置元数据指南
1. 概览 在编写 Spring Boot 应用程序时,将配置属性映射到 Java bean 上是非常有用的.但是,记录这些属性的最好方法是什么呢? 在本教程中,我们将探讨 Spring Boot C ...
- Spring Boot配置过滤器的两种方式
过滤器(Filter)是Servlet中常用的技术,可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,常用的场景有登录校验.权限控制.敏感词过滤等,下面介绍下Spring Boot配置过 ...
- spring boot配置druid连接池连接mysql
Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...
- Redis篇之操作、lettuce客户端、Spring集成以及Spring Boot配置
Redis篇之操作.lettuce客户端.Spring集成以及Spring Boot配置 目录 一.Redis简介 1.1 数据结构的操作 1.2 重要概念分析 二.Redis客户端 2.1 简介 2 ...
- Spring Boot配置,读取配置文件
Spring Boot配置,读取配置文件 一.配置Spring Boot 1.1 服务器配置 1.2 使用其他Web服务器 1.3 配置启动信息 1.4 配置浏览器显示ico 1.5 Yaml语法 1 ...
- Spring Boot -- 配置切换指南
一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...
- Spring Boot 配置优先级顺序
一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...
- spring boot 配置注入
spring boot配置注入有变量方式和类方式(参见:<spring boot 自定义配置属性的各种方式>),变量中又要注意静态变量的注入(参见:spring boot 给静态变量注入值 ...
- Spring boot配置多个Redis数据源操作实例
原文:https://www.jianshu.com/p/c79b65b253fa Spring boot配置多个Redis数据源操作实例 在SpringBoot是项目中整合了两个Redis的操作实例 ...
随机推荐
- 物联网架构成长之路(28)-Docker练习之MQ中间件(Kafka)
0. 前言 消息队列MQ,这个在一般的系统上都是会用到的一个中间件,我选择Kafka作为练手的一个中间件,Kafka依赖Zookeeper.Zookeeper安装上一篇博客已经介绍过了. 1. Kaf ...
- virt-viewer 连kvm 虚机
# yum install virt-viewer [root@ cfplace]# virsh list --all Id Name State -------------------------- ...
- 【翻译】Nginx的HTTP负载均衡
本文为翻译文,原文地址:http://nginx.org/en/docs/http/load_balancing.html 介绍 将请求负载均衡到多个应用实例是一个常用的技术,它起到优化资源使用率.最 ...
- window10下TensorFlow-gpu环境搭建
安装python 下载python3.5.4 https://www.python.org/downloads/release/python-354/ 选择Windows x86-64 executa ...
- eclipse中项目jdk1.8刷新下就变成1.5的解决办法
https://blog.csdn.net/qq_32814555/article/details/82803017 ***************************************** ...
- vue实例-转载
http://blog.csdn.net/yuanyuanispeak/article/details/73526795
- Java多线程:volatile 关键字
一.内存模型的相关概念 大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入.由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存 ...
- linux下好玩或者好用的小工具
本篇文章用于记录自己认为很好玩的linux下的小工具,不断添加中..大家如果有什么好玩的小工具的话,欢迎留言告诉我. 1. cmatrix工具 功能介绍: 可以产生黑客帝国中字符满屏幕飞的效果,当你离 ...
- 【Tensorflow】tensorboard
tbCallBack = tf.keras.callbacks.TensorBoard(log_dir='./log' , histogram_freq=0, write_graph=True, wr ...
- python程序打包成.exe
安装pyinstaller 方法一:使用pip install pyinstaller 方法二:如果是下载github上的包之后手动安装 包下载 亲测可用:Pyinstaller下载地址,GitHub ...

