所以我只是玩Spring Boot 2.0.4,今天我注意到了这一点。不知道我错过了什么。请帮我检查一下。
Spring应用程序
@SpringBootApplication
@EnableScheduling
public class Application extends SpringBootServletInitializer {
application.properties (位于src / main / resources中)
server.port=8088
使用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中没有,其他地方都不会覆盖,因此不会与其他配置文件重叠)
答案 0 :(得分:5)
您指定spring.config.location
以启动uber-jar并从Spring Boot 2启动,指定此参数将替换in the documentation所述Spring使用的默认位置。
使用来配置自定义配置位置时
spring.config.location
,它们将替换默认位置。对于 例如,如果spring.config.location
配置了值classpath:/custom-config/
,file:./custom-config/
,搜索顺序 变为以下内容:
file:./custom-config/
classpath:custom-config/
所以我认为您必须在application.properties
中显式添加spring.config.location
:
--spring.config.location=D:\config\,classpath:\application.properties
或者替代使用spring.config.additional-location
之类的--spring.config.additional-location=D:\config\
而不是spring.config.location
,它会添加而不是替换位置as stated by the documentation:
或者,当使用来配置自定义配置位置时 spring.config.additional-location,除了 默认位置。
答案 1 :(得分:0)
您说过将配置文件放在src / main / resource(s)中-但是您的命令行告诉spring在d:\ config中查找。你把文件的副本放在那里了吗?