Создайте новый класс и отметьте его следующими 3 аннотациями:
@Configuration
@EnableJms
@ConditionalOnProperty(name = "turnonjms", havingValue = "true")
public class MyEnableJmsCustomConfig {
//you can keep it empty. Just make sure this class
//is present in the same folder where main class is
}
Вы передадите свойство turnonjms
из внешних источников, таких как аргументы времени выполнения --turnonjms=true
или -Dturnonjms
. Если он присутствует, только тогда @EnableJms
будет активным. В противном случае он будет отключен.
Или, если хотите, вы всегда можете включить JMS и отключить его только при наличии определенного внешнего свойства:
@ConditionalOnProperty(name = "turoffjms", havingValue = "false")
Если вы не 't передать turnoffjms
свойство из внешних источников, тогда у вас всегда будет включен JMS. Если вы передадите --turnoffjms=true
, JMS будет отключен.
В примечании, когда вы используете @SpringBootApplication
, в нем уже есть аннотации @configuration
и @ComponentScan
. Вы можете использовать @ComponentScan
, если хотите сканировать папки вне текущего пакета. EnableGlobalMethodSecurity(...)
также имеет встроенный @Configuration
, поэтому можно безопасно удалить эти две аннотации из вашего основного класса.
Редактировать:
Поскольку вы уже используете application-local.properties, вставьте эту запись, чтобы отключить его:
turnoffjms: true
# поставить true
в двойные кавычки, если он не работает