Min*_*ang 5 java spring-profiles spring-boot
仅供参考:我发誓没有激活配置文件配置,例如 -D 或运行配置
\n\n当应用程序在没有任何激活配置文件的情况下启动时,dev
配置文件将默认激活。
我已经设置了spring.profile.default = dev
,并且我希望开发配置文件被激活。但事实并非如此。
Run Environment
Spring-Boot-版本:2.1.2 发布
\n\nWhat I\'m referred
1) 如何在 Spring Boot 应用程序中使用配置文件 - \n https://www.javacodegeeks.com/2019/07/profiles-spring-boot-application.html#respond
\n\n这是我所做的代码
\n\n/resources/application.properties
spring.profiles.default= dev\n\napplication.environment=This is a "Default" Environment\n
Run Code Online (Sandbox Code Playgroud)\n\n/resources/application-dev.properties
application.environment=This is a "dev" Environment\nserver.port= 8082\n
Run Code Online (Sandbox Code Playgroud)\n\n/ProfileController.java
@RestController\n@RequestMapping("/v1")\npublic class ProfileController {\n\n @Value("${application.environment}")\n private String applicationEnv;\n\n @GetMapping\n public String getApplicationEnv(){\n return applicationEnv;\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\nlocalhost/v1 => 这是一个“默认”环境
\n\n和
\n\n我发现默认配置文件设置正确dev
。
这是我的春季启动日志。
\n\n\n\n\n2019-10-16 23:17:02.926 INFO 64099 --- [ main] cesSpringbootdemoappApplication :没有活动配置文件集,回退到默认配置文件:dev
\n
\n\n\n2019-10-17 00:25:03.837 INFO 68318 --- [ main] osbwembedded.tomcat.TomcatWebServer :Tomcat 使用端口初始化:8083 (http)
\n
我添加的原因是它似乎不是与注入相关的问题。
\n\n我想要实现的第一个目标是更改默认配置文件。\n来自 spring 文档(https://docs.spring.io/spring/docs/4.2.0.RELEASE/spring-framework-reference/htmlsingle/#beans-definition -profiles-default ),默认配置文件可以按照spring.profiles.default
中的设置进行更改application.properties
。
但这似乎是一个错误(感谢@Antoniossss)。即使我已经设置application.properties
并且控制台显示No active profile set, falling back to default profiles: dev
。\n但是dev
配置文件仍然没有激活。
我发现的事情是更改默认配置文件应该在加载 application.properties 之前完成。
\n\n这意味着如果在 中描述了更改默认配置文件application.properties
,那就太晚了。(不知道为什么,我无法弄清楚,因为 Spring 中有很多层......)\n如果 d\xc3\xa9faut 配置文件是设置使用-Dspring.default.profile = dev
,它工作正常。
来自https://github.com/spring-projects/spring-boot/issues/1219:
\n\n\n\n您无法通过在配置文件中声明默认配置文件来更改它。它必须在读取配置文件之前就位。
\n
问题是您在加载应用程序后传递此属性,您需要在应用程序启动时提供此属性
将其作为 JVM 参数传递
java -jar -Dspring.profiles.default=dev myproject.jar
Run Code Online (Sandbox Code Playgroud)
作为环境变量传递
java -jar myproject.jar --spring.profiles.default=dev
Run Code Online (Sandbox Code Playgroud)
系统变量
SPRING_PROFILES_DEFAULT=dev
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22302 次 |
最近记录: |