Springboot读取配置文件

指定配置文件 通常情况下我们将配置配置在application开头的主配置文件中,这样随着项目的增大配置项的增多会使文件变得非常臃肿,其实SpringBoot早已考虑到了该问题,SpringBoot提供了@PropertySource和@ImportResource两个注解用于加载外部配置文件使用。 @PropertySource通常用于属性加载配置文件,注意@PropertySource注解不支持加载yaml文件,支持properties文件。另外该注解只对加了的类生效,且application系列是全局属性,不需要单独指出 @ImportResource通常用于加载Spring的xml配置文件 @PropertySource使用 支持从classpath, file (本地), http 来获取配置 装配properties配置文件 在sources/config下创建一个yaml文件命名为user.properties内容与上方user的配置一样 Login类可如下写法 运行一下,同样能达到加载配置效果 当需要根据不同的env读不同的file时,也可以实现 但,这里spring.profiles.active不能配置多个(这个很好理解吧) 同时加载多个配置问题细心的你,会发现@PropertySource注解中属性value为一个数组,如果同时加载多个配置文件,并且不同配置文件中对同一个属性设置了不同的值,那么Spring会识别哪一个呢?带着疑问,我们可以通过控制变量法进行测试,具体过程再在赘述。 结论:Spring加载顺序为从左到右顺序加载,后加载的会覆盖先加载的属性值。 装配yaml配置文件 如果你有强迫症,一定想加载yaml配置文件,那么可以通过PropertySourcesPlaceholderConfigurer类来加载yaml文件,将原来的user.properties改成user.yaml,Bean配置类中加入如下代码,Login配置类和一开始的方式一致。 运行一下,仍然可以能达到加载配置效果的 @ImportResource使用 SpringBoot提出零xml的配置,因此SpringBoot默认情况下时不会识别项目中Spring的xml配置文件。为了能够加载xml的配置文件,SpringBoot提供了@ImportResource注解该注解可以加载Spring的xml配置文件,通常加于启动类上。 also see: https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config Spring Boot lets you externalize your configuration so that you can work with the same application code in different environments. You can use a variety of external configuration sources, […]

lWoHvYe 无悔,专一