Я проверил в spring-boot 2.1.4 следующие конфигурации:
application.yaml:
spring:
profiles:
active: dev
application-dev.yaml:
sample:
value: development
application-prod.yaml:
sample:
value: production
И следующее (очень простое) приложение для весенней загрузки:
package com.example.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.event.EventListener;
@SpringBootApplication
public class DemoApplication {
@Value("${sample.value}")
private String sampleValue;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@EventListener
public void onAppStarted(ApplicationStartedEvent evt) {
System.out.println("Sample Value: " + sampleValue);
}
}
Эта конфигурация работает, даже если я не предоставляю никаких флагов : java -jar myapp.jar
Так что здесь должно быть что-то еще, связанное с вашим кодом.
Трудно сказать, что не так, не видя приложения, однако я нашел одно "подозрительное" утверждение:
Вы говорите, что независимо от того, что вы пытаетесь:
Следующие профили активны: Swagger, Dev
Теперь, где же «Swagger» профиль пришел? Я не вижу никакой ссылки на это. Если вы запускаете приложение с java -jar myapp.jar
, я могу видеть одну возможность: где-то есть spring.factories
файл, который определяет EnvironmentPostProcessor
- это ловушка, где вы можете «поиграться» с профилями и, среди прочего, добавить активные профили ». вручную »(в коде).
Поэтому, пожалуйста, проверьте эту возможность, но опять же - то, что вы сделали, правильно при весенней загрузке (ну, технически вам не нужно вводить spring.profiles.default
, но это не вредит)