第 6 章 使用配置属性
本章内容:
-
细粒度地调整自动配置的 bean;
-
将配置属性用到应用组件;
-
使用 Spring profile。
你还记得 iPhone 刚刚推出时的场景吗?iPhone 看上去只是一小块由金属、玻璃等材质组成的板子,完全不符合人们之前对于手机的认知。但是,它引领了现代智能手机的时代,改变了通信的方式。尽管触控手机比上一代的翻盖按键手机在很多方面都更加简单,功能也更强大,但是当 iPhone 第一次发布的时候,很难想象正面只有一个按钮的设备该如何用来打电话。
在某种程度上,Spring Boot 的自动配置与之类似。自动配置能够极大地简化 Spring 应用的开发。十多年来,我们都使用 Spring XML 设置属性值,然后调用 bean 实例的 setter 方法。在使用自动配置之后,我们突然发现,在没有显式配置的情况下,如何为 bean 设置属性变得不那么显而易见了。
幸好,Spring Boot 提供了配置属性(configuration property)的方式为应用组件设置属性值。其实,配置属性只是 Spring 应用上下文中带有 @ConfigurationProperties 注解的 bean 的属性而已。Spring 能够将来自多个属性源的值设置到 bean 的属性中,其中包括 JVM 系统属性、命令行参数以及环境变量。我们会在6.2节学习如何将 @ConfigurationProperties 用到我们自己的 bean 上。但是,Spring Boot本身也提供了一些带有@ConfigurationProperties注解的bean,我们会先学习如何配置它们。
在本章中,我们暂缓实现Taco Cloud应用的新特性,而是转向探讨配置属性的功能。不过,在后面的章节继续实现新特性时,你会发现所学的内容无疑都是有用的。首先看一下如何使用配置属性来微调Spring Boot的自动配置。