标签:默认 绑定 boolean org set pre util lis alt
配置文件
作用:spring boot 自动配置(约定,8080 ).可以使用配置文件 对默认的配置 进行修改
application.properties的修改方式:
yml修改方式:
把默认端口8080修改为8888,访问成功:
默认全局配置文件:
application.properties : key=value
application.yml : yaml ain‘t myarkup language ,不是一个标记文档 行内写法(k: v、[Set/List/数组] 、{map,对象类型的属性},并且 []可省,{}不能省
注意:1. key:空格value
2.通过垂直对齐 指定层次关系
3.value默认可以不写引号; ""会将其中的转义符进行转义,其他不会
server:
port: 8882
path: /a/b/c
xml:是一个标记文档
<server>
<port>8882</port>
<path>/a/b/c</path>
</server>
yml除了可以配置之外,还可以属性绑定:
例:创建一个实体类对象,并且绑定属性
package com.helloworld.entity; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component //把实体类加入ioc容器 @ConfigurationProperties(prefix = "student") //属性绑定声明 这里的student对应yml那边的student public class Student { private String name; private int age; private boolean sex; private Date birthday; // {province:广东,city:广州,zone:增城区} private Map<String,Object> location; private String[] hobbies; private List<String> skills; private Pet pet;//宠物 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isSex() { return sex; } public void setSex(boolean sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public Map<String, Object> getLocation() { return location; } public void setLocation(Map<String, Object> location) { this.location = location; } public String[] getHobbies() { return hobbies; } public void setHobbies(String[] hobbies) { this.hobbies = hobbies; } public List<String> getSkills() { return skills; } public void setSkills(List<String> skills) { this.skills = skills; } public Pet getPet() { return pet; } public void setPet(Pet pet) { this.pet = pet; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", sex=" + sex + ", birthday=" + birthday + ", location=" + location + ", hobbies=" + Arrays.toString(hobbies) + ", skills=" + skills + ", pet=" + pet + "]"; } }
然后在yml配置文件注入值:
student: name: zs age: 23 sex: true birthday: 2019/02/12 #location是map集合输入格式有两种 #1.{k:空格v} 行内写法 #2.通过垂直表示层次关系 例如:location: #province: 广东 #city: 广州 location: {province: 广东,city: 广州,zone: 增城区} #map集合 行内写法 #数组和list\set输入格式一样 -空格value 或者 [足球,篮球] 中括号可以省略 行内写法 hobbies: 足球,篮球 #数组 #- 篮球 #- 足球 skills: #list集合 - 编程 - 金融 pet: #对象类型通过垂直对齐 k:空格v 或者 pet:{name: wc11,strain: hsq} 行内写法 name: wc strain: hsq
数据绑定后,在测试类里面装配一个学生对象测试:
yml里面的属性确实打印出来的,测试成功。
总结:
application.properties配置方式 : key=value
application.yml配置方式:
1. key:空格value 简单属性配置
2.通过垂直对齐 指定层次关系
3.value默认可以不写引号; ""会将其中的转义符进行转义,其他不会
数据类型yml配置方式:
1、简单数据 k:空格v
2、list/set/数组
2.1 行内写法: hobbies: [足球,篮球] 中括号可省略
2.2 垂直方式:hobbies:
- 足球
- 篮球
3、对象/map
3.1 location :{province: 广东,city: 广州,zone: 增城区} 行内写法 注意v前面有空格
3.2 location :
province: 广东
city: 广州 通过垂直对齐表示层次关系
标签:默认 绑定 boolean org set pre util lis alt
原文地址:https://www.cnblogs.com/unlasting/p/12312854.html