SpringBoot2核心技术-核心功能-配置文件
创始人
2024-03-28 01:56:36
0

目录

1、文件类型

1.1、properties

1.2、yaml

1.2.1、简介

1.2.2、基本语法

1.2.3、数据类型

2、配置提示


1、文件类型

1.1、properties

同以前的properties用法

1.2、yaml

1.2.1、简介

YAML 是 "YAML Ain't Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。

非常适合用来做以数据为中心的配置文件

1.2.2、基本语法

  • key: value;kv之间有空格
  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释
  • 字符串无需加引号,如果要加,''与""表示字符串内容 会被 转义/不转义

1.2.3、数据类型

  • 字面量:单个的、不可再分的值。date、boolean、string、number、null

k: v

  • 对象:键值对的集合。map、hash、set、object

行内写法:  k: {k1:v1,k2:v2,k3:v3}
#或
k: 
    k1: v1
    k2: v2
    k3: v3

  • 数组:一组按次序排列的值。array、list、queue

行内写法:  k: [v1,v2,v3]
#或者
k:
 - v1
 - v2
 - v3

引入依赖lombok



org.projectlombok
lombok

 在项目中新建实体类 cn.xs.boot.bean.Pet

import lombok.Data;
import lombok.ToString;@ToString
@Data
public class Pet {
/* 名字 */
private String name;
/* 体重 */
private Double weight;
}

 在项目中新建实体类 cn.xs.boot.bean.Person

import lombok.Data;
import lombok.ToString;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
/
@ToString
@Data
public class Person {
/* 姓名 */
private String userName;
/* 是否为老板 */
private Boolean boss;
/* 生日 */
private Date birth;
/* 年龄 */
private Integer age;
/* 宠物 */
private Pet pet;
/* 兴趣 */
private String[] interests;
/* 动物 */
private List animal;
/* 分数 */
private Map score;
/* 薪资 */
private Set salary;
/* 所有的宠物 */
private Map> allPets;
}

 创建 application.yml 文件,YAML 文件的后缀可以是 .yaml 也可以是 .yml

将 Person 放入容器中,指定要绑定的配置文件

@ConfigurationProperties(prefix = "person")
@Component
@ToString
@Data
public class Person {}

在配置文件中配置 Person

person:
userName: hereshui
boss: true
birth: 2021/6/11
age: 18
# interests: [羽毛球,钢琴]
interests:
- 羽毛球
- 钢琴
animal: [阿猫,阿狗]
# score: {mathematics: 100,physics: 98,chemistry: 98}
score:
mathematics: 100
physics: 98
chemistry: 98
salary:
- 1.25
- 0.5
pet:
name: 塞班
weight: 99.99
allPets:
sick:
- {name: 阿狗,weight: 99.99}
- name: 阿猫
weight: 88.88
- name: 阿鼠
weight: 77.77
health: [{name: 阿鸭,weight: 66.66},{name: 阿鸡,weight: 55.55}]

注意调节格式,此处因为粘贴格式错误,运行会导致代码报错。

编写 cn.xs.boot.controller.HelloController 来进行测试

import cn.baisee.boot.bean.Person;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {
/* 注入 Person 对象 */
@Autowired
private Person person;
/**
* 返回容器中的 Person 对象
*
* @return
*/
@RequestMapping("/person")
public Person person() {
return person;
}
}

 当 application.yml 与 application.properties 中有相同配置时,以 properties 中的配置为准, properties 的优先级要高于 yaml

2、配置提示

自定义的类和配置文件绑定一般没有提示。

        org.springframework.bootspring-boot-configuration-processortrueorg.springframework.bootspring-boot-maven-pluginorg.springframework.bootspring-boot-configuration-processor

 

相关内容

热门资讯

【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
ChatGPT 怎么用最新详细... ChatGPT 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...