一、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 { //基本类型
@Email
private String name;
private Integer age;
private Boolean Boos;

  运行效果

   

Spring Boot 配置_yaml语法介绍 day02的更多相关文章

  1. Spring Boot 配置元数据指南

    1. 概览 在编写 Spring Boot 应用程序时,将配置属性映射到 Java bean 上是非常有用的.但是,记录这些属性的最好方法是什么呢? 在本教程中,我们将探讨 Spring Boot C ...

  2. Spring Boot配置过滤器的两种方式

    过滤器(Filter)是Servlet中常用的技术,可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,常用的场景有登录校验.权限控制.敏感词过滤等,下面介绍下Spring Boot配置过 ...

  3. spring boot配置druid连接池连接mysql

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  4. Redis篇之操作、lettuce客户端、Spring集成以及Spring Boot配置

    Redis篇之操作.lettuce客户端.Spring集成以及Spring Boot配置 目录 一.Redis简介 1.1 数据结构的操作 1.2 重要概念分析 二.Redis客户端 2.1 简介 2 ...

  5. Spring Boot配置,读取配置文件

    Spring Boot配置,读取配置文件 一.配置Spring Boot 1.1 服务器配置 1.2 使用其他Web服务器 1.3 配置启动信息 1.4 配置浏览器显示ico 1.5 Yaml语法 1 ...

  6. Spring Boot -- 配置切换指南

    一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...

  7. Spring Boot 配置优先级顺序

    一般在一个项目中,总是会有好多个环境.比如: 开发环境 -> 测试环境 -> 预发布环境 -> 生产环境 每个环境上的配置文件总是不一样的,甚至开发环境中每个开发者的环境可能也会有一 ...

  8. spring boot 配置注入

    spring boot配置注入有变量方式和类方式(参见:<spring boot 自定义配置属性的各种方式>),变量中又要注意静态变量的注入(参见:spring boot 给静态变量注入值 ...

  9. Spring boot配置多个Redis数据源操作实例

    原文:https://www.jianshu.com/p/c79b65b253fa Spring boot配置多个Redis数据源操作实例 在SpringBoot是项目中整合了两个Redis的操作实例 ...

随机推荐

  1. [sh]top添加到crontab不生效问题解决

    今天遇到个小问题 top结果赋值给变量,放到文件做处理, 但是不生效问题. https://www.phpbulo.com/archives/509.html cat top.sh NAME=&quo ...

  2. kafka集群方案教程

    https://www.cnblogs.com/justuntil/p/8033792.html https://www.cnblogs.com/saneri/p/8762168.html 2篇文章结 ...

  3. asp.net mvc 微信支付代码分析(根据沐雪微信平台3.1商城业务来分析)

    开发微信应用,微信支付是永远要面对的.现在的微信支付相对以往已经很稳定,很少出现诡异情况.再加上无数人开发的经验分享,现在开发微信支付已经没什么难度了. 我这次主要是想基于沐雪微信平台的微商城业务来分 ...

  4. adb获得安卓系统版本及截屏

    [时间:2017-09] [状态:Open] [关键词:adb, android,系统版本,截屏,screencap] 本文主要是我遇到的android命令行用法的一个简单总结 系统版本 获取系统版本 ...

  5. C语言 · 还款计算

    标题: 还款计算 银行贷款的等额本息还款方法是: 每月还固定的金额,在约定的期数内正好还完(最后一个月可能会有微小的零头出入). 比如说小明在银行贷款1万元.贷款年化利率为5%,贷款期限为24个月. ...

  6. error $GOPATH: no library found in $GOPATH: rdkafka

    安装confluent-kafka-go出错时,请使用brew安装pkg-config,手动go get安装的pkg-config还不行... 错误提示: go get -u github.com/c ...

  7. 常见机试题分析Java版

    1. 操作系统任务分为系统任务和用户任务两种.其中,系统任务的优先级<50,用户任务的优先级>=50且<=255.优先级大于255的为非法任务,应予以剔除.现有一任务队列task[] ...

  8. Thread线程中断相关方法

    public class Demo { /* * 线程中断相关方法 * ---------------------------------------------------------------- ...

  9. Spring的Log4J配置器Log4jWebConfigurer介绍

    1. Logj4简介 Log4j是Apache大旗下的一个子项目,它可以用来重定向应用日志文件的输出流,无论我们想将日志文件输出到控制台还是网络还是其他地方,都可以通过logj4来配置,如果我们的应用 ...

  10. P5173 传球

    题目背景 临近中考,pG的班主任决定上一节体育课,放松一下. 题解:https://blog.csdn.net/kkkksc03/article/details/85008120 题目描述 老师带着p ...