SpringBoot使用一个全局的配置文件,配置文件名是固定的;
•application.properties
•application.yml
配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;

YAML的简介:

YAML(YAML Ain't Markup Language)
​ YAML A Markup Language:是一个标记语言
​ YAML isn't Markup Language:不是一个标记语言;
标记语言:
​ 以前的配置文件;大多都使用的是 **xxxx.xml**文件;
​ YAML:**以数据为中心**,比json、xml等更适合做配置文件;

如果配置端口:

YAML:

server:
port:8089

XML:

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

YAML的基本语法:

基本语法:
k:(空格)v:表示一堆键值对,必须有空格!!!
以空格的缩进来控制层级关系:只要再同一列的数据可都是一个层级

注意:大小写敏感

值得写法
#### 字面量:普通的值(数字,字符串,布尔)
​ k: v:字面直接来写;
​ 字符串默认不用加上单引号或者双引号;
​ "":双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思
​ name: "zhangsan \n lisi":输出;zhangsan 换行 lisi
​ '':单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据
​ name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi

对象、Map(属性和值)(键值对):

​k: v:在下一行来写对象的属性和值的关系;注意缩进
​ 对象还是k: v的方式
friends: 对象
lastName: zhangsan 属性
age: 20 或者:
friends: {lastName: zhangsan,age: 18}

数组(List、Set):

用-(空格)值表示数组中的一个元素
pets:
- cat
- dog
- pig 或者:pets: [cat,dog,pig]

配置文件的注入

编写快捷键:

Alt+insert  :加入类的set和get 方法,以及toSrting 的重写

package com.quan.qiang.bean;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import java.util.Date;
import java.util.List;
import java.util.Map; /***
* 将配置文件夹得每个属性得值,映射到这个组件当中去
*@ConfigurationProperties 高数Spring boot
* 将本类中得所有属性和配置文件中相关配置进行绑定
* prefix = "person" 指定配置文件中哪个下面得所欲呕属性进行一对一映射
* 只有这个组件时容器中得组件,才能容器提供得@ConfigurationProperties功能
*/ @Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birth; private Map<String ,Object> maps;
private List<Object> lists;
private Dog dog; @Override
public String toString() {
return "Person{" +
"lastName='" + lastName + '\'' +
", age=" + age +
", boss=" + boss +
", birth=" + birth +
", maps=" + maps +
", lists=" + lists +
", dog=" + dog +
'}';
} public String getLastName() {
return lastName;
} public void setLastName(String lastName) {
this.lastName = lastName;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public Boolean getBoss() {
return boss;
} public void setBoss(Boolean boss) {
this.boss = boss;
} public Date getBirth() {
return birth;
} public void setBirth(Date birth) {
this.birth = birth;
} public Map<String, Object> getMaps() {
return maps;
} public void setMaps(Map<String, Object> maps) {
this.maps = maps;
} public List<Object> getLists() {
return lists;
} public void setLists(List<Object> lists) {
this.lists = lists;
} public Dog getDog() {
return dog;
} public void setDog(Dog dog) {
this.dog = dog;
}
}
package com.quan.qiang.bean;

public class Dog {
private String name;
private Integer age; @Override
public String toString() {
return "Dog{" +
"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;
}
}

配置文件:

server:
port: 8081 person:
lastname: quan
age: 22
boss: false
birth: 2020/11/11
map: {k1: v1,k2: 12}
lists:
- lisi
- zhaoliu
dog:
name: 小邹
age: 2

测试文件:

package com.quan.qiang;

import com.quan.qiang.bean.Person;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; /***
* SpringBoot的单元测试
* 可以再测试时间方便的进行租入
*/
@RunWith(SpringRunner.class)
@SpringBootTest
class QiangApplicationTests { @Autowired
Person person; @Test
void contextLoads() {
System.out.println(person);
} }

注意:需要导入配置文件处理器组件:

pom.xml文件加入依赖,重启Sprint Boot

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

运行测试结果:

Person{lastName='quan', age=22, boss=false, birth=Wed Nov 11 00:00:00 CST 2020, maps=null, lists=[lisi, zhaoliu], dog=Dog{name='小邹', age=2}}

Spring-boot-菜鸟-配置-简介的更多相关文章

  1. 转:spring boot log4j2配置(使用log4j2.yml文件)---YAML 语言教程

    转:spring boot log4j2配置(使用log4j2.yml文件) - CSDN博客http://blog.csdn.net/ClementAD/article/details/514988 ...

  2. 第64节:Java中的Spring Boot 2.0简介笔记

    Java中的Spring Boot 2.0简介笔记 spring boot简介 依赖java8的运行环境 多模块项目 打包和运行 spring boot是由spring framework构建的,sp ...

  3. Spring Boot Security配置教程

    1.简介 在本文中,我们将了解Spring Boot对spring Security的支持. 简而言之,我们将专注于默认Security配置以及如何在需要时禁用或自定义它. 2.默认Security设 ...

  4. 玩转spring boot——properties配置

    前言 在以往的java开发中,程序员最怕大量的配置,是因为配置一多就不好统一管理,经常出现找不到配置的情况.而项目中,从开发测试环境到生产环境,往往需要切换不同的配置,如测试数据库连接换成生产数据库连 ...

  5. Spring Boot 属性配置和使用

    Spring Boot 属性配置和使用 Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot ...

  6. Spring Boot 属性配置和使用(转)

    Spring Boot 属性配置和使用 Spring Boot 允许通过外部配置让你在不同的环境使用同一应用程序的代码,简单说就是可以通过配置文件来注入属性或者修改默认的配置. Spring Boot ...

  7. Sping Boot入门到实战之入门篇(四):Spring Boot自动化配置

    该篇为Sping Boot入门到实战系列入门篇的第四篇.介绍Spring Boot自动化配置的基本原理与实现.   Spring Boot之所以受开发者欢迎, 其中最重要的一个因素就是其自动化配置特性 ...

  8. Springboot 系列(三)Spring Boot 自动配置原理

    注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别. 前言 关于配置文件可以配置的内容,在 Spring ...

  9. Spring Boot自动配置与Spring 条件化配置

    SpringBoot自动配置 SpringBoot的自动配置是一个运行时(应用程序启动时)的过程,简化开发时间,无需浪费时间讨论具体的Spring配置,只需考虑如何利用SpringBoot的自动配置即 ...

  10. Spring Boot自动配置原理、实战

    Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...

随机推荐

  1. [数据生成器]UVA10054 The Necklace

    应吴老师之邀,写了个数据生成器. 目前这个数据生成器可以保证生成的数据都是合法的,且效率也还不错.只是在建立普通连通图的时候zyy偷懒了,直接把所有点串起来从而保证图的连通.如果有大神有更好的方法请不 ...

  2. 小甲鱼二十一讲 :lambda表达式!!!!

    0:  lambda x:x*3   lambad x,y=3:x*y 1:def findodd(x): if x%2 == 0 return None else: return x 2:几乎不用 ...

  3. C#方法重载(overload)、重写(覆盖)(override)、隐藏(new)

    重载 同一个作用域内发生(比如一个类里面),定义一系列同名方法,但是方法的参数列表不同.这样才能通过传递不同的参数来决定到底调用哪一个.而返回值类型不同是不能构成重载的. 作用:  重载必须发生在一个 ...

  4. 【biee】BIEE启动关闭服务

    转至:http://blog.sina.com.cn/s/blog_7e04e0d00101k5r8.html 版本:BIEE11g (11.1.1.6.0-11.1.1.6.7) OS:RHEL 5 ...

  5. spring 与java EE

    javaEE 和 j2EE一样吗?  javaEE (java platform Enterprise Edition) 1999年,Sun公司将java分为3个版本,即 标准版(J2SE) , 企业 ...

  6. AcWing 325. 计算机

    传送门 题目大意: 一棵无根树,每条边有一个距离,求每个顶点到距离其最远的顶点的距离. 思路: 考虑树形DP+换根. 令D[x]x到以x为根的子树当中的最长距离,d[x]为次长距离,U[x]为x向上走 ...

  7. ARP攻击的发现、攻击原理、攻击方式、防护,竟然这么简单?!

    ARP协议概述 ARP协议(address resolution protocol)地址解析协议. 一台主机和另一台主机通信,要知道目标的IP地址,但是在局域网中传输数据的网卡却不能直接识别IP地址, ...

  8. centos7 安装mysql Package: akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda)

    wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release ...

  9. docker学习笔记(3)- 镜像

    简介 在docker学习笔记(1)- 架构概述一节中可以看到镜像是docker三大组件之一,可以将Docker镜像类比为虚拟机的模版. 镜像由多个层组成,每层叠加之后从外部看就像一个独立的对象,镜像的 ...

  10. elasticsearch高亮之highlight原理

    一.highlight简介 highlight是提升用户体验的重要手段,搜索引擎通过高亮突出命中关键字等方式,方便用户通过关键字周围的信息快速的确认是否是自己希望的结果: highlight功能通常包 ...