一、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. Git回滚代码到某个commit

    回退命令: $ git reset --hard HEAD^ 回退到上个版本$ git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前 $ git rese ...

  2. python 执行sql得到字典格式数据

    本文在提供一种方式,实现执行sql语句 返回字典结果集 # 连接数据库,数据库的,这里使用的setting中的默认设置,在这里不做具体的介绍,不懂的可以百度一下 conn = MySQLdb.conn ...

  3. python faker 生成随机类型字符串

    以前生成测试字符时,用random模块拼来拼去来生成随机串,如姓名,手机,身份证等,还是费一些功夫,不过有了faker模块,一切变得简单起来 基本使用: from faker import Faker ...

  4. win10 caffe python Faster-RCNN训练自己数据集(转)

    一.制作数据集 1. 关于训练的图片 不论你是网上找的图片或者你用别人的数据集,记住一点你的图片不能太小,width和height最好不要小于150.需要是jpeg的图片. 2.制作xml文件 1)L ...

  5. 手动安装mysql

    需要在本机(mac)上装个mysql,看到压缩版的体积最小,结果进入了手工安装的坑(正常有界面可以安装,但安装目录将是/usr/local/mysql),既然入了坑就填上吧. 1.解压到自己选择的目录 ...

  6. 05Hadoop-左外连接

    场景:有两张表,一张用户表(user),交易表(transactions).两张表的字段如下: 两份表数据做个左连接,查询出(商品名,地址)这种格式. 这样就是相当于交易表是左表,不管怎么样数据都要保 ...

  7. C#中Timer定时器的使用示例

    关于C#中timer类 在C#里关于定时器类就有3个: 1.定义在System.Windows.Forms里 2.定义在System.Threading.Timer类里 3.定义在System.Tim ...

  8. GraphX学习笔记——可视化

    首先自己造了一份简单的社交关系的图 第一份是人物数据,id和姓名,person.txt 1 孙俪 2 邓超 3 佟大为 4 冯绍峰 5 黄晓明 6 angelababy 7 李冰冰 8 范冰冰 第二份 ...

  9. pyCharm最新激活码(2018激活码)

    首先输入新的License sever address 首先尝试处理方法是,针对过期会弹出激活框: 选择 Activate new license with License server (用lice ...

  10. Laravel 深入理解路由和URL生成

    原文地址: Laravel 深入理解路由和URL生成 在模板中我们一般不会直接写死url,而是用url助手生成url,本文介绍一下url助手的使用以及遇到的一些比较头疼的问题. 首先,我们创建了一个路 ...