1.Springboot的配置
Springboot使用一个全局的配置文件,配置文件名固定
application.yml
application.properties
yml的配置举例
1.1yml基本语法
k: v:表示键值对,k:后空格必须要有
属性和值分大小写敏感的
上图server和servlet表示同级关系(servlet可不设置)
1.2值得写法
1.2.1字面量:普通的值(字符串,数字,布尔值) k: v:字面直接来写;
字符串默认不用加上单引号或者双引号;
“”:双引号;会转义字符串里面的特殊字符;特殊字符会作为本身想表示的意思name: “zhangsan \n lisi”:输出;zhangsan 换行 lisi
‘’:单引号;不会转义特殊字符,特殊字符终只是一个普通的字符串数据name: ‘zhangsan \n lisi’:输出;zhangsan \n lisi
1.2.2对象
k:v:在下一行来写对象的属性和值的关系,注意缩进
1.2.3数组
用- 值来表示数组中的一个元素
1.2将javabean注入到配置文件中
1.2.1分别提供实体类 Person Dog
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birthday;
private Map<String, Integer> maps;
private List<Object> lists;
private Dog dog;
/*注意Get Set 以及toString方法*/
}
在注入的Person的类上添加注解
@Component//<bean id="person" class="com.yousian.pojo.Person"></bean>
//配置属性 将配置文件中的指定的属性值绑定到bean里面
@ConfigurationProperties(prefix = "person")
public class Person {
@configurationProperties:就是告诉springboot将当前类的所有属性和配置文件中的相关信息进行绑定
prefix:配置文件中的哪个属性进行一一映射
@Component:只有将这个类配置在spring容器中,才能使用@ConfigurationProperties的功能
使用@Autowired即可访问该对象
public class Dog {
private String name;
private Integer age;
/*注意Get Set 以及toString方法*/
}
1.2.2在application.yml注入属性
**1.3@Value获取值和@ConfigurationProperties获取值比较
**在spring中@Value相当于在配置文件中的
<bean id=” ” class=” ”>
<property name=” ” value=” ”></ property>
emp中使用@Value注解中获取属性
使用SPEL表达式获取
1.4@ConfigurationProperties和@Value的区别
最大的区别就是@ConfigurationProperties支持数据校验,而@Value则不支持。
小总结:
配置文件yml还是properties都能获取到值
如果说,我们只是在某个业务逻辑中需要获取以下配置文件中的某项值,使用@Value;如果我们专门编写了一个javaBean来和配置文件进行映射,我们就直接使用哪个@ConfigurationProperties;;