1.Spring Boot 配置文件的分类和作用
整个项目所有重要的数据都是在配置文件中配置的
1.数据库连接信息(包含用户名和密码的设置)
2.项目的启动窗口;
3.第三方系统调用密匙等信息
4.用于发现和定位问题的普通日志和异常日志等等
大体上可以分为两类
1.系统配置文件,比如说数据库连接,端口号的设置,日志
2.用户自定义配置文件,比如说第三方调用密匙
2.Spring Boot 配置文件的格式
分类:.properties 和.yml
创建yml文件的时候必须名字是application.yml 约定大于配置
这两种都是可以创建配置文件的,作用一样properties是老款,yml是新款
1.优先级问题:如果两个同时设置端口号(不同),则听老东西的(properties)
2.配置文件最好一个项目中用一种就行,统一性强。
3.properties配置文件的语法
存入信息键值对连接,用=
注释用#
读取信息
用注解搞定@Value("${ }")
properties的缺点
1.乱码问题
2.数据库连接需要写三个
4.yml配置
yml是另一种标记语言
优点:
1.可读性高,类似于json
2.支持更多的数据类型,支持数组和对象
3.yml支持更多的编程语言
在微服务时代统一的配置文件是非常急需的,因为万一MySQL的IP地址改了,那么只需改一份
4.中文不乱码
注意点:yml中key和value用:连接 :后面加一个空格 ,yml缩进
缺点:缩进式编程,容易出错
5.yml的类型
1.可以设置类型,并且类型能设置空
2.字符串 三种形式 不加 单引号 双引号
双引号会解析,单引号和什么也不加不会解析,所见即所得
6.yml写入和读取对象
yml对象
用@ConfigurationProperties Configuration配置文件Properties参数
写入
写入的时候要借助(创建)一个实体类(属性和yml里面同名)
加注解
1.@Component 对象注入的时候用
2.@ConfigurationProperties("#yml中的对象名") //找到yml中的对象
3.@Date 提供setter和getter方法 这个是必须的,因为赋值是通过setter设置的
读取
@Autowired 把已经赋值好的对象注入
7.yml集合写入和读取
dbtypes:是标识符
name是数组名
注意数组的名字也要和类中的名字一样
8.多份配置怎么办?
配置文件要有多份,开发环境有一份,测试环境有一份,上线版本有一份。
这些配置文件怎么区别和命名呢?
applicaiton-自定义.yml/properties
比如
application-dev.yml dev表示开发
加-的都是副手,需要在不加-的主手设置选了哪个副手
spring-profiles-active: 记住只写-后面的