------------恢复内容开始------------

SpringBoot之yaml语法

1、配置文件

官方配置文档太多了,根本记不住!

怎么办呐-->了解原理

SpringBoot使用了一个全局配置文件,且配置文件的名称是固定的:

  • application.properties

    • 语法结构:key=value
  • application.yaml
    • 语法结构:key: 空格 value

2、YAML

YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。

YAML是"YAML Ain't a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。(来自于百度百科词条解释)

YAML和XML的区别(以配置端口号为例):

YAML配置:

server:
address: 8081

XML配置 :

<server>
<port>8081<port>
<server>

2.1、YAML语法

基础语法--> key:value

#普通的key value键值对
name: liberty #对象
student:
name: liberty
age: 20 #对象的行内写法
student: {name: liberty,age: 20} #数组
pets:
- dog
- cat
- pig #数组的行内写法
pets: [dog,cat,pig]

注意:yaml中对于空格的要求极其严格

student:
name: liberty
age:20
(age前面加一个空格的话相当于age是name下面的属性) student:
name: liberty
age: 20
(这样相当于三个对象)

2.2、注入配置文件

程序实现

2.2.1、将默认的application.properties后缀改为yaml

2.2.2、根据提示打开文档导入配置文件处理器

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>

2.2.3、编写yaml配置文件

2.2.4、在SpringBoot的主程序的同级目录下建包(必须这样,约定大于配置)

package com.liberty.pojo;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; @Component
/**
* 注解意思是将此添加到SpringBoot组件里面
*/
@ConfigurationProperties(prefix = "person")
/**
* ConfigurationProperties告诉SpringBoot将本类中的所有属性和配置文件中相关配置进行绑定
* 参数prefix = "person" 将配置文件中的person下面的所有属性一一对应
*/
public class Person
{
private String name;
private Integer age; @Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public Person(String name, Integer age) {
this.name = name;
this.age = age;
} public Person() {
}
}

2.2.5、测试无误后,在测试单元中进行测试,看看是否注入成功

package com.liberty;

import com.liberty.pojo.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest
class Demo02ApplicationTests {
//自动装配
@Autowired
Person person; @Test
void contextLoads() {
System.out.println(person);
} }



------------恢复内容结束------------

最新文章

  1. 《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新
  2. ie6支持最小高度
  3. ajax技术应用(转)
  4. APP原型设计工具,哪家强?转自知乎
  5. Javascript的变量与delete操作符
  6. Ubuntu 14.04 MySQL同步
  7. iOS开发——动画编程Swift篇&amp;(四)CABasicAnimation动画
  8. Android中获取应用程序(包)的信息-----PackageManager的使用(一)
  9. [css]《CSS知多少》
  10. pc telnet 登录 android 系统
  11. 杂题 UVAoj 107 The Cat in the Hat
  12. 完整的Android手机短信验证源码
  13. 数据库连接技术之OLE DB
  14. 【SSH三框架】Hibernate基金会七:许多附属业务
  15. 手把手带你走进MVP +Dagger2 + DataBinding+ Rxjava+Retrofit 的世界
  16. css区分ie8/ie9/ie10/ie11 chrome firefox的代码
  17. 11、TopN实战
  18. html5与css 1. web标准及组成
  19. NIO ServerSocketChannel ScoketChannel
  20. shell脚本实例-安装httpd,安装yum源

热门文章

  1. Qt:QTimer
  2. JAVA——转义字符
  3. JZ-026-二叉搜索树与双向链表
  4. 使用MASA Blazor开发一个标准的查询表格页
  5. 二进制部署1.23.4版本k8s集群-2-安装DNS服务
  6. 七牛云cdn加速
  7. tp5 多文件上传
  8. 移动端ios网页版收起键盘导致页面空白解决办法
  9. ArcMap操作随记(12)
  10. python+pytest接口自动化(9)-cookie绕过登录(保持登录状态)