Отключить JMS для профиля - PullRequest
       10

Отключить JMS для профиля

0 голосов
/ 26 марта 2019

В Springboot 2 я могу сделать что-то вроде этого, чтобы отключить встроенный контейнер сервлета:

spring:
  main:
    web-application-type: none

Теперь я ищу похожую настройку для отключения JMS.В настоящее время я использую профиль, что-то вроде этого:

@Profile("!nojms")
public class MQListener {
...

, а затем использую application-lala.yaml с содержанием:

spring:
  main:
    web-application-type: none

  profiles:
    active: nojms

Но теперь, когда я использую профиль "lala", тогдаслушатель JMS все еще запускается.

1 Ответ

0 голосов
/ 26 марта 2019

Когда вы активируете с помощью аргументов CLI, profiles.active не сработает, поскольку вы по сути уже активировали профиль.

Вы можете добавить spring.profiles.include к application-lala для безусловной активностидругие профили.

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html#boot-features-adding-active-profiles

Свойство spring.profiles.active следует тем же правилам упорядочения, что и другие свойства: выигрывает самый высокий PropertySource.Это означает, что вы можете указать активные профили в application.properties, а затем заменить их с помощью переключателя командной строки.

Иногда полезно иметь специфичные для профиля свойства, которые добавляют к активным профилям, а не заменяют их.,Свойство spring.profiles.include можно использовать для безусловного добавления активных профилей.Точка входа SpringApplication также имеет Java API для настройки дополнительных профилей (то есть поверх тех, которые активируются свойством spring.profiles.active).См. Метод setAdditionalProfiles () в SpringApplication.

spring:
  main:
    web-application-type: none

  profiles:
      include: nojms
...