SpringBoot 学习笔记心得(一)配置文件篇(Application+YMAL+自定义(properties)+Spring)

对于SSM学习的结束,小编对于配置文件的印象也逐渐加深,对于SpringBoot来说,就是简化了SSM的配置,其中SpringBoot自带了XXXAutoConfiguration自动配置类,也就是为什么SpringBoot简化了配置文件的原因,下面小编将SpringBoot的学习笔记和心得以及一些踩过的坑都分享出来

1)、前言

1)、配置文件命名规范

SpringBoot使用一个全局的配置文件,配置文件名application是固定的;
application.properties
application.yml
application.yaml
配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;

其中yml和yaml是同一个文件不同的写法

2)、properties使用规则:

1.以对象调属性值得方式设置对象属性

1)、对象、Map、List(属性和值):
k: v在下一行来写对象的属性和值的关系;

person.name=李四
person.age=34
person.gender=女
person.lists=male,female //list
person.maps.k1=v1 //map
person.maps.k2=v2
person.pet.name="小白" // Dog类
person.pet.age=12

2)、数组(List、Set)

people.list={"Rocy",100,true ...}

3)、yaml使用规则:

1.以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的。
2.次等级的前面是空格,不能使用制表符(tab)。
3.冒号之后如果有值,那么冒号和值之间至少有一个空格,不能紧贴着。

1)、对象、Map、List(属性和值):
k: v在下一行来写对象的属性和值的关系;注意缩进

person:
  name: 张三
  gender:age: 36
  maps: {k1: v1,k2: v2} //map键值对写法
  lists:
    - apple
    - peach
    - banana
  pet:
    name: 小狗
    age: 12

行内写法

person: {name: 张三,gender:,age: 22}

2)、数组(List、Set)

gender:
  - male
  - female

鼠标点击元素,是可以直接显示数组长度的
在这里插入图片描述

4)、PoJo类搭建:

@Component
@ConfigurationProperties(prefix = "people")
public class People {

	private String name;
    private String age;
	private List<Object> lists;
	private Dog pet;
	...

}
@Component
public class Dog{
		private String name;
		private String age;
}

注意:在创建实体类的时候
1.一定要加入到容器中

2.使用@ConfigurationProperties注解指明在配置文件中的前缀prefix(小编这里为people)

5)、配置文件值注入:

导入依赖之后,配置文件会有提示

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

在这里插入图片描述
注意:yaml和properties配置文件同时存在,properties配置文件的内容会覆盖yaml配置文件的内容

2)、配置文件注入和注解注入两种方式对比

@ConfigurationProperties @Value
功能 批量注入配置文件中的属性 单个指定
松散绑定(松散语法) 支持 不支持
SpEL 不支持 支持
JSR303数据校验 支持 不支持
复杂类型封装 支持 不支持

松散绑定:例如Person中有lastName属性,在配置文件中可以写成
lastName 或 lastname 或 last-name 或 last_name等等

3)、@PropertySource注解的使用

1).作用

@PropertySource注解的作用是加载指定的配置文件,值可以是数组,也就是可以加载多个配置文件

springboot默认加载的配置文件名是application,如果配置文件名不是这个是不会被容器加载的,所以将内容定义在自定义的properties文件中,那么这个配置文件是无效的

2).加载

用@PropertySource({“classpath:自定义文件名.properties”})指定加载自定义文件名.properties配置文件

3).效果

未加注解
在这里插入图片描述
加上注解:
在这里插入图片描述
在这里插入图片描述

运行结果:
在这里插入图片描述

4)、@ImportResource注解的使用

1)、Spring配置文件写放位置

1.也是在类路径下的resources文件夹下创建Spring配置文件
2.Spring Boot里面没有Spring的配置文件,我们自己编写的配置文件,也不能自动识别;
3.@ImportResource注解用于导入Spring的配置文件,让配置文件里面的内容生效;

1.Spring配置文件
在这里插入图片描述
2.boot测试类运行抛出异常

在这里插入图片描述

3.添加注解@ImportResource在这里插入图片描述
运行结果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43409994/article/details/106543316