帅帅的 林财钦_|

园龄:粉丝:关注:

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 {

    //基本类型
    @Email
    private String name;
    private Integer age;
    private Boolean Boos;
复制代码

   运行效果

   

 

本文作者:独而不孤

本文链接:https://www.cnblogs.com/lcaiqin/p/10371221.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   林财钦  阅读(1466)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.