1.配置文件基础
(1)配置文件的作用
整个项目重要的数据都在配置文件中。
比如数据库的连接信息、项目的启动端口等等。
将这些重要信息都配置好后,整个项目才可以正常运行。
(2)配置文件的格式
SpringBoot配置文件主要有两种格式:
.properties
.yml
当我们创建SpringBoot项目时,会生成默认的配置文件“application.properties”。
如果两种类型的配置文件都存在时,“.properties”的优先级更高,会优先加载其配置,之后加载“.yml”。实际业务中,一般使用统一的配置文件。
2.用户自定义配置
配置中的配置项分为两类,一类叫做系统配置项,必须按照要求进行配置,key是固定的,上述这些都是系统配置项;还有一类叫做用户自定义配置项,key和value都是由用户自定义的。
如图所示:
配置好后,程序要去配置文件中将其读出来,这里就使用到了“@Value”注解。
代码如图所示,这里就读到了配置文件中我们的自定义配置,@Value(${key})这个注解一定要加上${},否则就是将那个字符串赋值到变量,只有正确写出,才可以将配置写入到变量。
运行程序,如图所示。
这里就成功获取到了我们自定义的一个配置,当然这个注解也可以帮助我们读取系统配置。
所以这个读取,与是否是自定义无关,只要将key值写正确,就可以直接获得配置。
尽量接收配置的那个变量,与配置的类型相同。
3.properties配置文件
(1)基础语法
properties是以键值对的形式进行配置的,key=value。
写完一个配置后,换行写下一个配置。
如图所示,上诉文本就对其端口号,以及数据库相关进行了配置。
上图中的注释,是通过#号进行的。
(2)优缺点
优点:
a.系统默认的配置文件;
b.优先级比yml高;
c.格式简单,不容易出错;
缺点:
a.配置文件比较冗余,有很多重复的东西;
4.yml配置文件
yml是YAML的缩写。
yml配置其实本质上与properties配置文件一致,也是键值对,只是形式不一样。
如图所示,yml是树形结构的配置文件,语法是“key: value”,中间有空格,配置正确后,key会高亮显示。
yml的优点:
a.可读性高,写法简单,易于理解,语法类似于json;
b.yml支持更多的数据类型,比如数组、散列表、标量等;
c.支持更多编程语言;
比如,我们可以用yml配置对象:
配置中添加student对象和其属性。
读取并打印,如下图:
这里只是读取对象的一个属性,如果需要读取对象的话就需要另一个注解@ComfigurationProperties,这个注解就可以读取配置项中的对象,并将其赋值到一个类中,这个类必须有set方法,因为这个对象的属性是通过set方法注入的。而且类的属性必须与配置文件中对象的属性对应,否则会出现问题。
除了这个注解外还需要@Component注解,这个注解是让这个实体类随着程序的启动而启动,否则就无法把配置文件中读取的值注入进去
现在我们创建一个studentComponent类,并且使用lombok生成set方法。
再增加一个@ToString注解,帮助我们等会儿打印这个类。
接下来,我们打印一下,如图所示:
打印出来的类完全符合我们在配置文件中的配置。
5.设置不同环境下使用不同配置文件
实际企业开发中,我们会面对,开发环境、测试环境、生产环境等等,不同环境下我们需要使用不同的配置。
比如需求如下:
开发环境端口号:6666
测试环境端口号:7777
SpringBoot不同平台的配置规则如下:
(1)必须有主配置文件,主配置文件名必须是application.yml(.properties)。
(2)不同环境必须有不同的配置文件,文件名为application-xxx.yml(.properties)。
如图所示,主配置文件中配置上述配置文件的可变部分,使其选择正确环境下的配置文件。