Spring配置文件详解:properties与yml的使用对比
Spring配置文件详解:properties与yml的使用对比
Spring框架提供了properties和yml两种配置文件格式,它们在使用场景和优先级上有所不同。本文将通过具体示例,详细介绍这两种配置文件的使用方法和区别。
1. 分类和说明
application.yml
和application.properties
两个类型都可以作为配置文件;- 相同的配置项,在两个文件里面都存在,这个时候
properties
配置文件的优先级比yml
文件的优先级更高; - 不同的配置项,在两个文件里面存在的时候,彼此互不影响,运行的时候都会生效的;
2. properties配置文件的演示
下面的这个就是我们的这个comtroller层里面的这个代码:
下面的这个就是我们创建项目工程的时候,这个配置文件里面的这个默认的内容,我们不需要进行任何的修改,可以先查看这个演示效果:
这个时候,为了方便我们对于这个配置文件的效果进行演示,这个时候,我们可以添加一些我们的这个自定义的内容,下面的这个第四行里面的这个内容就是我们的这个自定义的内容:里面的这个就是以键值对的方式进行呈现的,如图所示:
这个时候,我们直接在这个浏览器上面进行访问:这个时候,直接访问,我们是无法获取的,因为程序这个时候是无法读取我们的这个配置文件的自定义的配置内容的:
下面的这个就是在原来的基础上面添加这个@Value注解,这个注解里面的这个内容就是如图所示:和我们的这个自定义的配置保持一致。就可以正常访问到我们的这个配置文件里面的这个自定义的内容了:
3. yml配置文件演示
这个yml文件的书写格式如下所示:这个和我们的properties有很大的区别,并且这个键值对之间需要有空格,就是我们的这个key和value之间需要有空格,如图所示:
就是我们空格和不空格,这个效果是不一样的,例如下面的这个图上面port我们修改这个端口号位8081(默认的是8080)这个时候我们在这个打印的日志里面是可以看到这个变化的:
如果我们没有空格,这个时候的port就是白色的,这个时候说明是没有生效的,但是加上这个空格之后,这个port就是蓝色的,这个就是生效的标志:
我们的这个Yml获取这个配置文件内容的这个方法和上面的properties完全一致,没有任何区别,演示如下:
4. 字符串里单双引号的说明
下面的这个左边是我们的yml配置文件里面的这个内容(从这个格式上面应该也是可以看出来的);
这个时候右边的就是这个打印的效果,方便我们直观地进行理解:
- 我们的这个配置文件里面默认就是不用加上单引号或者双引号的;
- 单引号里面的这个\n就是按照普通的字符处理的;
- 双引号里面的这个\n就是按照这个转义字符处理的;
5. yml读取对象
首先就是我们的这个配置文件:我们在这个里面的对象就是string对象:
其次就是我们的这个:model里面的这个实例类student类,prefix就是我们的这个配置文件里面的前缀,方便我们读取这个配置文件里面的对应的内容:
image-20241129211136591
其次就是进行访问:
6. yml读取列表
我把这个对应的代码放在了不同的这个图层上面,属于不同的文件dbtypes就是我们的这个配置文件里面的列表作为我们需要读取的内容:
image-20241129212100747