Spring Boot第三弹:Spring Boot之使用YAML
来源:互联网 发布:淘宝店铺入驻规则 编辑:程序博客网 时间:2024/06/11 20:43
Spring Boot之使用YAML
小弟刚接触spring boot不久,仅想通过写网志的形式来加深记忆和方便以后查阅。如内容有不正确之处,还望各位大佬海量汪涵,并给小弟指出,共同进步。
1. 概述
YAML是JSON的超集,因此这是一种非常方便的格式,用于指定分层配置数据。
2. 加载YAML
SpringApplication类能够自动支持YAML作为一种properties的替代者。SpringFramework提供了两个可用于加载YAML文档的类:其中YamlPropertiesFactoryBean将加载YAML成为Properties;而YamlMapFactoryBean将加载YAML成为Map。如:
environments: dev: url: http:// name: Developer my: servers: -dev -pro
使用YamlPropertiesFactoryBean以上yaml得:
environments.dev.url = http://environments.dev.name = Developermy.servers[0] = devmy.servers[1] = pro
3. 多环境YAML文件
可以通过使用spring.profiles键来指定该文档应用于哪一个环境,然后可以通过此种形式来为多个环境编写特定的配置文档。如:
server: address: 192.168.3.5spring: profiles: devserver: address: 192.168.3.6spring: profiles: proserver: address: 192.168.3.10
**以上如果dev处于活跃状态,address为192.168.3.6;
如pro处于活跃状态,address为192.168.3.10。**
4. 选择启动某个配置文件
Spring Boot配置文件提供了隔离一部分应用程序配置的方法,并可使其仅在某指定环境可用。任何有@Component和@Configuration注解的Bean都用@profile来指定加载哪个配置文件。如:
@Configuration @Profile( “production”)//加载production配置文件,即也代表当前是production环境public class Demo{ // ...}
以普通Spring的方式,可以使用spring.profile.active环境属性来指定哪些配置文件处于活动状态。
spring.profiles.active = dev或spring: profiles: active: dev
----------4.1以编程方式启动某配置文件@SpringBootApplicationpublic class DemoApplication { public static void main(String[] args) { SpringApplication app = new SpringApplication(DemoApplication.class); //启动dev配置文件 app.setAdditionalProfiles("dev"); // dev 或prod app.run(args); }}
4.2 maven的pom文件中启动某配置文件
<profiles> <profile> <!-- 本地开发环境 --> <id>dev</id> <properties> <profiles.active>dev</profiles.active> </properties> <activation> <!-- 开启本地开发环境 --> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <!-- 测试环境 --> <id>test</id> <properties> <profiles.active>test</profiles.active> </properties> </profile> <profile> <!-- 生产环境 --> <id>pro</id> <properties> <profiles.active>pro</profiles.active> </properties> </profile></profiles>
5. YAML下的列表
如,以下yaml配置文件:
book: list: -name: Java -name: C++
可用以下形式获取book列表:
@ConfigurationProperties(“book”) public class FooProperties{ private final List <MyPojo> list = new ArrayList <>(); public List <MyPojo> getList(){ return this .list; }}
6. 宽松绑定
Spring Boot使用相对宽松的规则来将环境属性绑定到使用@ConfigurationProperties注解的Bean中,所以不需要环境属性名称和Bean属性名称完全匹配。
**如:context-path绑定contextPath和PORT绑定port
详见下表:**
属性 注意person.firstName 标准驼峰语法person.first_name 下划线符号,用于.properties和.ymlperson.first-ame kabab,推荐使用.properties和.ymlPERSON_FIRSTNAME 大写格式,推荐系统环境变量时使用
- Spring Boot第三弹:Spring Boot之使用YAML
- spring boot之Properties和YAML
- YAML在Spring Boot下如何使用?
- Spring boot 切换配置文件到yaml
- Spring Boot-配置文件详解:Properties和YAML
- Spring Boot-配置文件详解:Properties和YAML
- spring-boot之aop使用
- SSH之Spring传统方式接入YAML管理各环境配置方式(从Spring Boot移植)
- Spring Boot第一弹:Spring Boot之“Hello World”
- Spring Boot第四弹:Spring Boot之@Value和@ConfigurationProperties
- Spring Boot第五弹:Spring Boot之日志
- Spring Boot第六弹:Spring Boot之静态内容
- spring-boot系列之初识spring-boot
- Spring Boot基础之“什么是Spring Boot”
- 【Spring Boot】Spring Boot
- spring boot 之 controller
- Spring Boot之配置文件
- spring-boot 之 helloword
- Js WebSocket简单抽象类实现
- 富文本信息存储显示?乱码问题
- esxi
- 17. Letter Combinations of a Phone Number
- hdu 2066一个人的旅行
- Spring Boot第三弹:Spring Boot之使用YAML
- 区块浏览器——insight——替换数据源
- Hadoop 的功能和优势
- Java AOP编程
- Oracle常用函数
- 《数据结构与算法分析》
- 安装Tomcat服务器以及错误汇总(tomcat8.0、jdk8)
- glib学习记录_________基础篇
- Lintcode 177.把排序数组转换为高度最小的二叉搜索树