2.properties文件通过“=”赋值,yml的数据格式类似json,通过“:”赋值,值前面需要加一个空格;yml文件缩进最好用空格;
3.properties只支持键值对,yml配置文件支持列表,短横线表示列表“-”;
4.properties不保证加载顺序,yml有先后困枝顺序。
使用@Value注解的配置文件可以放在四个位置:
外置,在相对于应用程序运行目录的/congfig子目录里汪团敏。
外置,在应用程序运行的目录里
内置,在config包内
内置,在Classpath根目录
此外,如果你在相同优先级位置同时有properties和yml,那么properties里面的属性就会覆盖里yml的属性
YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑纯陵识别的的数据数据序列化格祥搭式,并且容易被人类阅读,容易和脚本语言交互的,可以被谨裤拿支持YAML库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。最常见的两种
接下来要讲的几种case要用到如下的yml文件
application.yml
application1.yml
借助Spring提供的一个类,org.springframework.core.env.Environment, 它继承了PropertyResolver, 所以可以当作属性解析器使用
Spring提供了YamlPropertiesFactoryBean可以读取自定义配置yml文件,不再拘泥于application.yml及其激活的其他配置文件
存在问题: 那就是只有在这个接口的请求中能够取到这个属性的值,如果再写一个接口,不使用YamlPropertiesFactoryBean读取配置文件,即使之前的方法已经读取过这个yml文件一次了,第二个接口取到的仍然还是空值。
解决方式: 配合PropertySourcesPlaceholderConfigurer使用,它实现了BeanFactoryPostProcessor接口,也就是一个bean工厂后置处理器的实现,可以将配置文数洞件的属性值加载到一旦毕颂个Properties文件中。模郑使用方法如下:
除了使用YamlPropertiesFactoryBean将yml解析成Properties外,其实我们还可以使用YamlMapFactoryBean解析yml成为Map
使用snakeYml,需要引入依赖
使用方式:
使用jackson,需要引入依赖
使用jackson读取yml也非常简单,这里用到了常用的ObjectMapper,在创建ObjectMapper对象时指定使用YAML工厂,之后就可以简单的将yml映射到实体:
jackson还可以生成yml文件
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)