网站的留言怎么做,seo好学吗入门怎么学,如何制作网页,茂名网站优化一、配置文件的加载顺序 SpringApplication从以下位置的application.properties文件加载属性#xff0c;并将它们添加到Spring Environment中去#xff0c;优先级如下#xff1a;
当前目录的/config子目录#xff08;src\config#xff09;当前目录#xff08;跟src目录…一、配置文件的加载顺序 SpringApplication从以下位置的application.properties文件加载属性并将它们添加到Spring Environment中去优先级如下
当前目录的/config子目录src\config当前目录跟src目录同级别classpath /config包是指src\main\resources\configclasspath 路径(跟src\main\resources目录 列表按优先级排序在列表中较高位置定义的属性将覆盖在较低位置中定义的属性。 二、切换别的配置文件 如果不喜欢application.properties作为配置文件名则可以通过指定spring.config.name环境属性来切换到另一个文件名。您还可以使用spring.config.location环境属性以逗号分隔的目录位置或文件路径列表来引用显式位置。以下示例显示如何指定其他文件名 $ java -jar myproject.jar --spring.config.namemyproject以下示例显示如何指定两个位置 $ java -jar myproject.jar --spring.config.locationclasspath:/default.properties,classpath:/override.properties三、属性中的占位符 application.properties中的值在使用时通过现有的Environment进行过滤因此您可以返回先前定义的值例如从系统属性中。 app.nameMyApp
app.description${app.name} is a Spring Boot application 四、使用ymal YAML是JSON的超集因此是用于指定分层配置数据的便捷格式。只要在类路径上有SnakeYAML库SpringApplication类就会自动支持YAML作为属性的替代 。 Spring Framework提供了两个方便的类可用于加载YAML文档。YamlPropertiesFactoryBean将YAML加载为PropertiesYamlMapFactoryBean将YAML加载为Map。 例如 environments:dev:url: http://dev.example.comname: Developer Setupprod:url: http://another.example.comname: My Cool App 前面的示例将转换为以下属性 environments.dev.urlhttp://dev.example.com
environments.dev.nameDeveloper Setup
environments.prod.urlhttp://another.example.com
environments.prod.nameMy Cool App YAML列表表示为具有[index]解除引用的属性键。例如考虑以下YAML my:
servers:- dev.example.com- another.example.com 前面的示例将转换为这些属性 my.servers[0]dev.example.com
my.servers[1]another.example.com 绑定到实体类上 ConfigurationProperties(prefixmy)
public class Config {private ListString servers new ArrayListString();public ListString getServers() {return this.servers;}
} 缺点 无法使用PropertySource注释加载YAML文件。因此如果您需要以这种方式加载值则需要使用属性文件。 五、对象配置 例如假设一个MyPojo对象其name和description属性默认为null。以下示例公开了来自AcmeProperties的MyPojo对象的列表 ConfigurationProperties(acme)
public class AcmeProperties {private final ListMyPojo list new ArrayList();public ListMyPojo getList() {return this.list;}} 配置 acme:list:- name: my namedescription: my description
---
spring:profiles: dev
acme:list:- name: my another name 对于Map属性您可以绑定从多个源中提取的属性值。但是对于多个源中的相同属性使用具有最高优先级的属性。以下示例从AcmeProperties公开MapString, MyPojo ConfigurationProperties(acme)
public class AcmeProperties {private final MapString, MyPojo map new HashMap();public MapString, MyPojo getMap() {return this.map;}} 请考虑以下配置 acme:map:key1:name: my name 1description: my description 1
---
spring:profiles: dev
acme:map:key1:name: dev name 1key2:name: dev name 2description: dev description 2