Чтение профилей Spring из @controller - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу связать профили maven с профилями пружин.Проект построен в военном файле.Приложение представляет собой приложение Spring, а не SpringBoot, развернутое на сервере Weblogic.

У меня есть этот pom.xml файл

<profile>
    <id>debug</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <properties>
        <spring.profiles.active>debug</spring.profiles.active>
    </properties>
</profile>
..

и в приложении @Controller:

  @Autowired
  private Environment env;

  final List<String> activeProfiles = Arrays.asList(env.getActiveProfiles());

, но activeProfiles - это empty.

Я получил тот же результат, используя

<activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <spring.profiles.to.activate>local</spring.profiles.to.activate>
            </properties>

1 Ответ

0 голосов
/ 28 ноября 2018

Вы просто определяете spring.profiles.active значение свойства с помощью профиля Maven.Это свойство доступно для сборки Maven, например, для фильтрации ресурсов.

Значение по-прежнему необходимо передать в JVM, выполняющую Spring Boot, например, тесты JUnit обычно запускаются с плагином Maven Surefire, который разветвляется на JVM и выигрывает 'Свойства не отображаются, если вы не используете argLine конфигурацию:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <configuration>
        <argLine>-Dspring.profiles.active=${spring.profiles.active}</argLine>
      </configuration>
    </plugin>
  </plugins>
</build>

Как правило, это выше для любого плагина Maven, используемого для запуска приложения Spring Boot.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...