Spring3.1引入了新的@PropertySource注解作为向环境添加属性源的便捷机制。我们可以将此注释与@Configuration注释结合使用:@Configuration@PropertySource("classpath:foo.properties")publicclassPropertiesWithJavaConfig{//...}注册新属性文件的另一种非常有用的方法是使用帐户位,它允许我们在运行时动态选择正确的文件:@PropertySource({"classpath:persistence-${envTarget:mysql}.properties"})SpringBoot中的一个常见做法是使用外部配置来定义我们的属性。这允许我们在不同的环境中使用相同的应用程序代码。我们可以使用属性文件、YAML文件、环境变量和命令行参数。PropertiesConfiguration默认情况下,SpringBoot可以访问application.properties文件中设置的配置,使用key-value格式:spring.datasource.url=jdbc:h2:devspring.datasource.username=SAspring.datasource.password=passwordHere每行都是一个单独的配置,因此我们需要通过为我们的键使用相同的前缀来表达分层数据。在这个例子中,每个键都属于spring.datasource。在我们的值中,我们可以使用带有${}语法的占位符来引用其他键、系统属性或环境变量的内容:app.name=MyAppapp.description=${app.name}是一个SpringBootapplicationList结构如果我们有不同值的相同属性,我们可以使用数组索引来表示列表结构:application.servers[0].ip=127.0.0.1application.servers[0].path=/path1application.servers[1].ip=127.0.0.2application.servers[1].path=/path2application.servers[2].ip=127.0.0.3application.servers[2].path=/path3YAML配置除了Java属性文件,我们还可以Boot应用程序中使用基于YAML的配置文件。YAML是一种用于指定分层配置数据的便捷格式。现在让我们从属性文件中获取相同的示例并将其转换为YAML:spring:datasource:password:passwordurl:jdbc:h2:devusername:SA如果表达列表结构,YAML格式也更紧凑:application:servers:-ip:'127.0.0.1'path:'/path1'-ip:'127.0.0.2'path:'/path2'-ip:'127.0.0.3'path:'/path3'基于SpringBoot的SAPCAP示例应用version,使用了Application.yml文件,比如mockuser的定义:与帮助文档中的yml语法略有不同:
