1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > yml语法规则 (5.spring boot配置文件注入@ConfigurationProperties) 配置文件处理器...

yml语法规则 (5.spring boot配置文件注入@ConfigurationProperties) 配置文件处理器...

时间:2020-02-15 20:22:40

相关推荐

yml语法规则  (5.spring boot配置文件注入@ConfigurationProperties) 配置文件处理器...

applicationi.properties

application.yml 以数据为中心,比json xml更适合做配置文件

k: v 表示一对键值对空格缩进控制层级关系,左对齐的一列数据都是同一层级

字面量:123 aaa字符串默认不用引号 true""不转义,所以特殊字符比如换行生效''转义,所以特殊字符当成普通字符无效

对象,map属性值对象还是k: v在下一行写friends:lastname: zhangsanage: 20行内写法:friends: {lastname: zhangsan,age: 18}

数组List、Set,pets:- cat- dog- pig行内写法:pets: [cat,dog,pig]

干活:

创建bean目录写一个person类,一个dog类

@ConfigurationProperties将配置文件中配置的每一个属性的值,映射到这个组件中

package com.tabctrlshift.springboot.bean;import org.springframework.boot.context.properties.ConfigurationProperties;import java.util.Date;import java.util.List;import java.util.Map;/*** @ConfigurationProperties将配置文件中配置的每一个属性的值,映射到这个组件中* prefix = "person"配置文件中这个下面的所有属性进行一一映射*///类中所有属性和配置文件中相关的配置进行绑定@ConfigurationProperties(prefix = "person")public class Person {private String lastName;private Integer age;private boolean boos;private Date birth;private Map<String,Object> maps;private List<Object> lists;private Dog dog;@Overridepublic String toString() {return "Person{" +"lastName='" + lastName + '\'' +", age=" + age +", boos=" + boos +", 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 isBoos() {return boos;}public void setBoos(boolean boos) {this.boos = boos;}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.tabctrlshift.springboot.bean;public class Dog {private String name;private String age;@Overridepublic String toString() {return "Dog{" +"name='" + name + '\'' +", age='" + age + '\'' +'}';}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}}

application.yml写入配置

server:port: 8081person:lastName: zhangsanage: 18boss: falsebirth: /12/12maps: {k1: v1,k2: 12}lists:- list- zhaoliudog:name: 小狗age: 2

错误提示:

添加相关的依赖就有元数据提示了

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

配置好了重新启动main

@Component 添加到容器中

下面开始测试

package com.tabctrlshift.springboot;import com.tabctrlshift.springboot.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;/*** spring boot单元测试** 可以在测试期间类似编码一样进行自动注入等容器的功能*///用spring的驱动器来跑,而不是junit@RunWith(SpringRunner.class)//springboot的单元测试@SpringBootTestpublic class SpringBoot02ConfigApplicationTests {@AutowiredPerson person;@Test//在这运行public void contextLoads() {//简写so就可以联想出来System.out.println(person);}}

运行测试,控制台打印出来ok

Person{lastName='zhangsan', age=18, boos=false, birth=Tue Dec 12 00:00:00 CST , maps={k1=v1, k2=12}, lists=[list, zhaoliu], dog=Dog{name='小狗', age='2'}}

配置文件、javabean,导入配置文件处理器这样编写配置就有提示了

@ConfigurationProperties

同样如果用.properties文件也会有提示

有中文 文件编码也要改一下

#server.port=8081#配置文件默认utf-8person.age=18person.birth=/12/12person.boos=falseperson.last-name=张三person.lists=a,b,cperson.maps.k1=v1person.maps.k2=v2person.maps.k3=v3person.dog.name=dogperson.dog.age=15

上面是application.properties代码例子

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。