首页 > 编程知识 正文

配置Spring Boot 配置文件详解一,springboot配置文件详解教程

时间:2023-05-06 10:27:41 阅读:198628 作者:2750

SpringBoot配置文件详解(一) 0. 准备

在 IDEA 中 新建一个 Project,直接使用 Spring Initializr 模板


在所需的模块中,勾选出 web 模块

1. 配置文件简介

Spring Boot 使用一个全局的p配置文件

application.propertiesapplication.yml

全局配置文件可以对一些默认配置值进行修改

配置文件放在 src/main/resources 目录或者 类路径/config 下

2. YAML (YAML Ain’t Makeup Language)文件

标记语言:

以前的配置文件:大多使用的是 xxxx.xml 文件YAML:以数据为中心,比 json 、xml 等更适合做配置文件

yaml 配置例子(改变端口号):

server: port: 8081


xml 配置对比:

<server><port>8081</port></server> 3. YAML 语法

1、YAML 基本语法

使用缩进表示层级关系缩进时不允许使用 Tab 键,只允许使用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可属性和值大小写敏感 server:port: 8081path: /hello

2、YAML 支持的三种数据结构

对象:键值对的集合数组:一组按次序排列的值字面量:单个的、不可再分的值 3.1 字面量

字面量:普通的值(数字、字符串、伶俐的自行车)

k: v 字面直接写出来;字符串默认不用加上单引号或者双引号”“:双引号:不会转义字符串里的特殊字符,特殊字符会作为本身想表示的意思
name: ”zhangsan n lisi“ 输出:zhangsan 换行 lisi‘’:单引号:会转义特殊字符,特殊字符最终只是普通的字符串数据
name: ‘zhangsan n lisi’ 输出:zhangsan n lisi 3.2 对象、Map(属性和值)(键值对)

k: v ;在下一行来写对象的属性和值的关系;注意缩进

students:sName: zhangsansAge: 20sSex: 男

行内写法:

students: {sName: zhangsan,sAge: 20,sSex: 男} 3.3 数组(List、Set)

用 - 表示数组中的一个元素

pets: - cat - dog - pig

行内写法:

pets: [cat,dog,pig] 4. YAML 配置文件值的获取

创建一个 bean 实例类

package com.jiker.springbootconfig.bean;import java.util.Date;import java.util.List;import java.util.Map;public class Person { private String name; private Integer age; private Boolean boss; private Date birth; private Map<String,Object> maps; private List<Object> lists; private Dog dog; public String getName() { return name; } public Map<String, Object> getMaps() { return maps; } public Dog getDog() { return dog; } public void setDog(Dog dog) { this.dog = dog; } 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 Date getBirth() { return birth; } public void setBirth(Date birth) { this.birth = birth; } public Integer getAge() { return age; } public Boolean getBoss() { return boss; } public void setBoss(Boolean boss) { this.boss = boss; } public void setAge(Integer age) { this.age = age; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Person{" + "name='" + getName() + ''' + ", age=" + getAge() + ", boss=" + getBoss() + ", birth=" + getBirth() + ", maps=" + getMaps() + ", lists=" + getLists() + ", dog=" + getDog()+ '}'; }} package com.jiker.springbootconfig.bean;public class Dog { private String name; private Integer 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; } @Override public String toString() { return "Dog{" + "name='" + getName() + ''' + ", age=" + getAge() + '}'; }}

配置 application.yml 文件

server: port: 8081person: name: hello age: 18 boss: false birth: 1998/12/12 maps: {k1: v1,k2: v2} lists: - zhangsan - lisi dog: name: 小狗 age: 12

通过注解:@ConfigurationProperties ,将配置文件中配置的每一个属性的值映射到 java bean组件中

在 pom.xml 中导入以下依赖

<!--导入配置文件处理器,配置文件进行绑定就会有提示--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </dependency>

在test中进行测试

package com.jiker.springbootconfig;import com.jiker.springbootconfig.bean.Person;import org.junit.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;@RunWith(SpringRunner.class)@SpringBootTestpublic class SpringbootConfigApplicationTests { @Autowired Person person; @Test public void contextLoads() { System.out.println(person); }}


配置文件自动装配值成功

时间:2019.5.27 19:17

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。