SpringBoot 学习笔记心得(一)配置文件篇

对于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在这里插入图片描述
运行结果:

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值