在 IDEA 中 新建一个 Project,直接使用 Spring Initializr 模板
在所需的模块中,勾选出 web 模块
Spring Boot 使用一个全局的p配置文件
application.propertiesapplication.yml全局配置文件可以对一些默认配置值进行修改
配置文件放在 src/main/resources 目录或者 类路径/config 下
标记语言:
以前的配置文件:大多使用的是 xxxx.xml 文件YAML:以数据为中心,比 json 、xml 等更适合做配置文件yaml 配置例子(改变端口号):
server: port: 8081
xml 配置对比:
1、YAML 基本语法
使用缩进表示层级关系缩进时不允许使用 Tab 键,只允许使用空格缩进的空格数目不重要,只要相同层级的元素左侧对齐即可属性和值大小写敏感 server:port: 8081path: /hello2、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 中导入以下依赖
在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