К вашему сведению: я клянусь, что нет конфигурации активирующего профиля, такой как -D или конфигурация запуска
Цель
Когда приложение загружается без какого-либо активирующего профиля,dev
профиль активирован по умолчанию.
Проблема
Я установил spring.profile.default = dev
, и я ожидаю, что профиль разработчика активирован. Но это не так.
То, что я сделал
Run Environment
Spring-Boot-версия: 2.1.2 Release
What I'm referred
1) Как использовать профили в приложении Spring Boot - https://www.javacodegeeks.com/2019/07/profiles-spring-boot-application.html#respond
Вот код, который я сделал
/resources/application.properties
spring.profiles.default= dev
application.environment=This is a "Default" Environment
/resources/application-dev.properties
application.environment=This is a "dev" Environment
server.port= 8082
/ProfileController.java
@RestController
@RequestMapping("/v1")
public class ProfileController {
@Value("${application.environment}")
private String applicationEnv;
@GetMapping
public String getApplicationEnv(){
return applicationEnv;
}
}
Результат
localhost / v1 => Это среда по умолчанию
И
Я обнаружил, что профиль по умолчанию настроен как dev
.
Это мой журнал весенней загрузки.
2019-10-16 23: 17: 02.926 INFO 64099 --- [main] cesSpringbootdemoappApplication: активный профиль не задан, откат к профилям по умолчанию: dev
Добавить еще один журнал для порта сервера
2019-10-17 00: 25: 03.837 ИНФОРМАЦИЯ 68318 --- [main] osbwembedded.tomcat.TomcatWebServer: Tomcat инициализирован с портом (портами): 8083 (http)
Причина, которую я добавляю, заключается в том, что это не проблема, связанная с инъекцией.
Время закрыть этот вопрос
Первая цель, которую я хочу достичь, - изменить профиль по умолчанию. Из Spring Docs (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
. Тем не менее, профиль dev
не был активирован.
Я обнаружил, что изменение профиля по умолчанию должно быть сделано до загрузки приложения.properties .
Это означает, что если изменение профиля по умолчанию описано в application.properties
, уже слишком поздно (хотя IDK, почему я не могу понять, потому что в Spring так много слоев ..).) Если профиль défaut настроен с использованием -Dspring.default.profile = dev
, он работает правильно.
С https://github.com/spring-projects/spring-boot/issues/1219:
Вы не можете изменить профиль по умолчанию, объявив его в конфигурации. файл. Он должен быть на месте, прежде чем файлы конфигурации будут прочитаны.