Java 弹簧靴2.x不';当我指定spring.config.location时,t扫描application.properties
所以我只是在玩SpringBoot2.0.4,今天我注意到了这一点。我不确定我是否错过了什么。请帮我查一下 弹簧应用程序Java 弹簧靴2.x不';当我指定spring.config.location时,t扫描application.properties,java,spring,spring-boot,Java,Spring,Spring Boot,所以我只是在玩SpringBoot2.0.4,今天我注意到了这一点。我不确定我是否错过了什么。请帮我查一下 弹簧应用程序 @SpringBootApplication @EnableScheduling public class Application extends SpringBootServletInitializer { application.properties(位于src/main/resources中) 使用Intellij启动项目 2018-08-17 12:11:05 IN
@SpringBootApplication
@EnableScheduling
public class Application extends SpringBootServletInitializer {
application.properties(位于src/main/resources中)
使用Intellij启动项目
2018-08-17 12:11:05 INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8088 (http) with context path ''
使用java命令行启动项目:
java -jar sample.jar --spring.config.location=D:\config\ --spring.profiles.active=dev
应用程序未使用配置的端口
2018-08-17 11:25:25 INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port(s): 8080 (http) with context path ''
看起来Spring Boot 2.0忽略了默认属性文件(注意:此配置仅在applications.properties中,不在其他位置,因此不会被其他配置文件重叠)您说您将配置文件放在src/main/resource(s)中,但命令行告诉Spring在d:\config中查找。你把文件的副本放在那里了吗?你指定
spring.config.location
来启动uber jar,从spring Boot 2开始,指定此参数将替换spring使用的默认位置,如前所述
使用配置自定义配置位置时
spring.config.location
,它们将替换默认位置。对于
例如,如果spring.config.location
配置了该值
classpath:/custom config/
,文件:./custom config/
,搜索顺序
变为以下内容:
文件:./custom config/
classpath:customconfig/
spring.config.location
中显式添加application.properties
:
--spring.config.location=D:\config\,classpath:\application.properties
或者使用spring.config.additional location
,例如--spring.config.additional location=D:\config\
代替将添加而不是替换位置的spring.config.location
:
或者,当通过使用配置自定义配置位置时
spring.config.additional-location,除了
默认位置
我还有另外两个属性文件(application-dev.properties和application-prod.properties),用于我想向用户公开的一些配置。如果我把配置放在那里,它会工作,但如果我把它放在application.properties中,它也会工作。根据文档,任何应用程序{profile}.properties都将覆盖名称相同的application.properties。谢谢@davidxxx这解决了我的问题。它在SpringBoot1.4中运行良好,但我认为他们在SpringBoot2中对其进行了更改。非常感谢欢迎:)你是对的:默认行为已从SpringBoot2更改。sb2中引入了
spring.config.additional location
,以保持相同的行为。是的,但我不相信此解决方案将允许您跳出项目的根目录。它限制您仅使用项目根目录下的文件。正确的?
--spring.config.location=D:\config\,classpath:\application.properties