在resources目录下,可以放入spring boot的全局配置文件。spring boot全局配置文件的命名默认如下:
配置文件的作用:修改SpringBoot自动配置的默认值。
什么是yum文件?
YAML(YAML Ain’t Markup Language)
以数据为中心,比json、xml等更适合做配置文件
yuml文件例子:
server:
port: 8888
以前使用xml配置文件的配置
<server>
<port>8888</port>
</server>
server:
port: 8888
path: /hello
port与path都是属于server下的同一级
k: v——字面量
注意:
1)字符串默认不用加上单引号或者双引号
2) “”:双引号;不会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思。例如: name: “zhangsan \n lisi” 输出;zhangsan 换行 lisi
3) ''单引号;会转义特殊字符,特殊字符最终只是一个普通的字符串数据 。例如:name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi
k: v——在下一行来写对象的属性和值的关系;需要注意缩进
person:
name: zhangsan
age: 100
行内写法:
persion: {name: zhangsan,age: 100}
用 -(空格)值来表示
animals:
- cat
- tiger
- lion
行内写法
animals: [cat,tiger,lion]
1)yuml配置文件(application.yml):
person:
name: zhangsan
age: 28
isBoss: false
map: {k1: admin,k2: 123}
list:
- kkk
- admin
- 130
dog:
name: Petty
age: 5
birth: 1990/12/30
2、javaBean对象:
Person类:
/**
* @ConfigurationProperties(prefix = "person") :告诉spring将本类中的所有属性和配置文件中的相关配置进行绑定
* 其中,prefix = "person"用来指定对配置文件中哪个下面的所有属性进行一一映射
*
* 必须将Bean对象加入到容器中
*
* @PropertySource(value = "classpath:application.yml") 加载指定yaml文件的配置,默认路径为./src/main/resources
**/
@Component
@PropertySource(value = "classpath:application.yml")
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private int age;
private boolean isBoss;
private Map<String,Object> map;
private List<Object> list;
private Dog dog;
private Date birth;
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 isBoss() {
return isBoss;
}
public void setBoss(boolean boss) {
isBoss = boss;
}
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
public List<Object> getList() {
return list;
}
public void setList(List<Object> list) {
this.list = list;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
public Date getBirth() {
return birth;
}
public void setBirth(Date birth) {
this.birth = birth;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", isBoss=" + isBoss +
", map=" + map +
", list=" + list +
", dog=" + dog +
", birth=" + birth +
'}';
}
}
Dog对象:
public class Dog {
private String name;
private int age;
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;
}
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
注意:
1)javaBean对象中,getter/setter方法不能少。
2)在需要进行属性注入的JavaBean上,需要添加两个注解:
@Component 将Bean对象装配到容器中。只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能。
@ConfigurationProperties(prefix = “person”) :告诉spring将本类中的所有属性和配置文件中的相关配置进行绑定。其中,prefix = “person” 用来指定对配置文件中哪个下面的所有属性进行一一映射。
3、在pom.xml文件中导入配置文件处理器
<!--导入配置文件处理器,在编写配置文件时就会提示 在pom.xml-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
4、Spring junit单元测试
import com.zm.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;
/* *
* @description //TODO spring boot的单元测试
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootQuickstartApplicationTests {
@Autowired
Person p;
@Test
public void testOne(){
System.out.println(p);
}
}
注意:
1)测试类必须是public的。
2)测试方法必须是public的。
3)@Test应用的包为 org.junit.Test。
4)在测试类前,需要加上:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootQuickstartApplicationTests {