SpringBoot使用一个全局的配置文件,配置文件名是固定的;
配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;
k:(空格)v:表示一对键值对(空格必须有);
以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的
server:
port: 8081
path: /hello
属性和值是大小写敏感的
字符串默认不用加上单引号或者双引号;
friends:
lastName: zhangsan
age: 20
行内写法:
friends: {lastName: zhangsan,age: 18}
pets:
‐ cat
‐ dog
‐ pig
pets: [cat,dog,pig]
配置文件
person:
lastName: hello
age: 18
boss: false
birth: 2017/12/12
maps: {k1: v1,k2: 12}
lists:
‐ lisi
‐ zhaoliu
dog:
name: 小狗
age: 12
javaBean
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* 将配置文件中配置的每一个属性的值,映射到这个组件中
* @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
* prefix = "person":配置文件中哪个下面的所有属性进行一一映射
* 只有这个组件是容器中的组件,才能容器提供的@ConfigurationProperties功能;
*/
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
// 注意 必须加 get / set 方法
}
导入配置文件处理器
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-configuration-processorartifactId>
<version>2.2.6.RELEASEversion>
dependency>
补充 :properties配置文件在idea中默认utf-8可能会乱码
需要添加相关依赖
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
@Component
@ConfigurationProperties(prefix = "person")
// 参数校验相关注解
@Validated
public class Person {
// 限制 lastName必须是邮箱格式, 如果不是邮箱格式会报错
@Email
private String lastName;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String, Object> maps;
private List<Object> lists;
private Dog dog;
作用 :
导入Spring的配置文件,让配置文件里面的内容生效;
Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;
想让Spring的配置文件生效,加载进来;@ImportResource标注在一个配置类上
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dog" class="com.wangt.springboot.chapter01.domain.Dog">bean>
beans>
/**
* @author wangt
*/
@ImportResource(locations = {"classpath:beans.xml"})
@SpringBootApplication
public class Chapter01Application {
public static void main(String[] args) {
SpringApplication.run(Chapter01Application.class, args);
}
}
@RunWith(SpringRunner.class)
@SpringBootTest
class Chapter01ApplicationTests {
@Autowired
ApplicationContext ioc;
@Test
void testDog(){
boolean isContain = ioc.containsBean("dog");
System.out.println(isContain);
}
}
# student
student.last-name=李白${random.uuid}
student.age=${random.int}
student.boss=false
student.maps.k1=KK
student.maps.v1=21
student.lists=a1, a2, a3
2.创建Person类,并指定