一、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. Android ANR的产生与分析

      ANR即Application Not Responding应用无响应,一般在ANR的时候会弹出一个应用无响应对话框.也许有些开发者在使用某些手机开发中不在弹出应用无响应弹出框,特别是国产手机An ...

  2. Java之收集很好的Java学习资料地址+博客

    https://blog.insanecoder.top/tcp-packet-splice-and-split-issue/ http://blog.csdn.net/qilixiang012/ar ...

  3. 行为链分析zipkin

    行为链分析zipkin - 跑zipkin python例子 https://github.com/openzipkin/pyramid_zipkin-example # get the latest ...

  4. android studio: Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution o

    今天在运行部署项目时logcat弹出下列错误: -- ::-/? E/Zygote: v2 -- ::-/? I/libpersona: KNOX_SDCARD checking this -- :: ...

  5. C++数值类型与string的相互转换

    转自:https://www.cnblogs.com/johngu/p/7878029.html 1.数值类型转换为string 1.1使用函数模板+ostringstream 使用函数模板将基本数据 ...

  6. 蜻蜓特派员 Windows XP SP3 纯净终结版

    蜻蜓特派员Windows XP SP3 纯净安装版 终结版,系统纯净无广告.无插件,网卡等驱动和运行库齐全,安全更新补丁全网最新!微软停止了 Windows XP 的支持之后还是偶尔为 WinXP 提 ...

  7. mysql表空间加密 keyring encryption

    从5.7.11开始,mysql开始支持物理表空间的加密,它使用两层加密架构.包括:master key 和 tablespace key master key用于加密tablespace key,加密 ...

  8. Direct3D 11 Tutorial 4: 3D Spaces_Direct3D 11 教程4:3D空间

    概述 在上一个教程中,我们在应用程序窗口的中心成功渲染了一个三角形. 我们没有太注意我们在顶点缓冲区中拾取的顶点位置. 在本教程中,我们将深入研究3D位置和转换的细节. 本教程的结果将是渲染到屏幕的3 ...

  9. 虚拟机---vmmare15安装centos7.4

    第一步:下载centos7的镜像iso文件:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-Everything- ...

  10. HTML使用CSS样式的方法

      在html网页中引入css样式表主要有一下四种方法 1.行内引入 <p ></p> 2.嵌入式 <style type="text/css"> ...