Аннотация @ConditionalOnProperty не работает в проекте весенней загрузкиJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Аннотация @ConditionalOnProperty не работает в проекте весенней загрузки

Сообщение Anonymous »

Я хочу условно создать Spring bean. Я решил, что @ConditionalOnProperty послужит этой цели. Я использовал его в своем классе обслуживания, но не вижу создаваемого компонента.

Вот мой бин, который я хочу условно создать

Код: Выделить всё

@Service
@ConditionalOnProperty(value = "polling.enabled", havingValue = "true")
public class MessageQueueService {

@Scheduled(fixedDelay = INTERVAL_MS)
public void execute() {
//sysout
}
}
несколько вещей, на которые следует обратить внимание.

- наш сервис загружает свойства непосредственно из консула (по причинам, связанным с устаревшими версиями). ), а не через среду Spring

- я взломал компонент RestTemplate (ниже), чтобы добавить в среду пользовательское свойствоResource. Я не знал, как это сделать, не создавая еще один экземпляр компонента PropertySource.

Код: Выделить всё

@Configuration
public class AppConfig {

@Autowired
ConfigurableEnvironment env;

@Bean(name = "consulProps")
public Properties properties() {
Properties consulProperties = new ConsulDriver(env.getConsulUrl()).loadProperties();
return properties;
}

@Bean
@Autowired
public RestTemplate restTemplate(@Qualifier(consulProps) Properties props) {
MutablePropertySources sources = env.getPropertySources();
sources.addFirst(pollingEnabled(props));
return new RestTemplate();
}

private MapPropertySource pollingEnabled(Properties props) {
String enabled = props.getProperty("polling.enabled"); // line 25
Map map = new HashMap();
if (StringUtils.isNotBlank(enabled)) {
map.put("polling.enabled", enabled);
}
else {
map.put("polling.enabled", "false");
}
return new MapPropertySource("polling", map);
}

@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigIn() {
return new PropertySourcesPlaceholderConfigurer();
}
}
когда я запускаю службу, она запускается. Я настроил polling.enabled true в консуле. во время отладки я подтвердил, что значение установлено правильно в строке 25. Однако компонент НЕ создается.
если я закомментирую @ConditionalOnProperty из класса, компонент будет создан и запланированный метод будет звонил.

Любая помощь в исправлении ситуации будет очень признательна!
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/508 ... ot-project
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Аннотация Spring @Retryable не работает в приложении весенней загрузки
    Anonymous » » в форуме JAVA
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Аннотация @EnableEurekaclient устарела в версии весенней загрузки 3.9.1.
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Аннотация @EnableEurekaclient устарела в версии весенней загрузки 3.9.1.
    Anonymous » » в форуме JAVA
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Может ли @conditionalonproperty использовать вложенную стоимость недвижимости?
    Anonymous » » в форуме JAVA
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • @Conditionalonproperty Annotation не работает в Spring Boot Project
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»