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. [题解]第十一届北航程序设计竞赛预赛——I.神奇宝贝大师

    题目描述 一张n*m的地图,每个格子里面有一定数量的神奇宝贝,求一个最优位置,使得所有神奇宝贝到该位置的曼哈顿距离最小. 一共有T组数据,每组数据包含两行,第一行是n和m(1<=n,m<= ...

  2. 【windows 访问控制】一、访问令牌

    访问令牌(Access tokens) 访问令牌是描述进程或线程的安全上下文的对象.令牌中的信息包括与进程或线程关联的用户帐户的标识和特权信息.当用户登录时,系统通过将用户密码与安全数据库(如域认证中 ...

  3. 【C#单元测试】 开篇

    官方:https://docs.microsoft.com/zh-cn/visualstudio/test/install-third-party-unit-test-frameworks?view= ...

  4. 鼠标点击的时候出现 "双心心" 的效果

    设置步骤 点击博客园的 [管理]  → [设置] → 一直往下拉, 找到 [页首Html代码],添加如下代码内容, 保存即可: <script type="text/javascrip ...

  5. selenium+python自动化102-登录页面滑动解锁(ActionChains)

    前言 登录页面会遇到滑动解锁,滑动解锁的目的就是为了防止别人用代码登录(也就是为了防止你自动化登录),有些滑动解锁是需要去拼图这种会难一点. 有些直接拖到最最右侧就可以了,本篇讲下使用 seleniu ...

  6. 查询性能提升3倍!Apache Hudi 查询优化了解下?

    从 Hudi 0.10.0版本开始,我们很高兴推出在数据库领域中称为 Z-Order 和 Hilbert 空间填充曲线的高级数据布局优化技术的支持. 1. 背景 Amazon EMR 团队最近发表了一 ...

  7. c# TabControl控件中TabPage选项卡切换时触发的事件

    选项卡切换触发的是tabcontrol控件的SelectedIndexChanged事件. 当tabcontrol控件的任何一个tabpage被点击或选择,即发生SelectedIndexChange ...

  8. Solon 1.6.30 发布,更现代感的应用开发框架

    相对于 Spring Boot 和 Spring Cloud 的项目 启动快 5 - 10 倍 qps 高 2- 3 倍 运行时内存节省 1/3 ~ 1/2 打包可以缩小到 1/2 ~ 1/10(比如 ...

  9. egg-jwt的使用

    安装 npm install egg-jwt --save 配置 // config/config.default.js config.jwt = { secret: 'zidingyi', // 自 ...

  10. 一比一还原axios源码(四)—— Axios类

    axios源码的分析,到目前为止,算上第0章已经四章了,但是实际上,还都没有进入axios真正的主线,我们来简单回顾下.最开始我们构建了get请求,写了重要的buildURL方法,然后我们处理请求体请 ...