SpringBoot JMS UserCredentialsConnectionFactoryAdapter @RefreshScope нетерпеливая инициализация не работает

#java #spring #spring-boot #spring-jms #spring-bean

Вопрос:

Я использую spring boot 2.1.9 и пытаюсь обновить соединение IBM MQ JMS. Возможность обновления компонента UserCredentialsConnectionFactoryAdapter с помощью области обновления и быстрой инициализации после запуска приложения. Но проблема в том, что класс UserCredentialsConnectionFactoryAdapter threadBoundCredentials равен нулю после обновления, поэтому при создании соединения возникает исключение NullPointerException

Я заметил, что после обновления Spring создает 2 экземпляра, и 1 имеет значения, а другой прокси-класс не имеет значения. при создании соединения spring использует прокси-сервер и получает нулевой указатель.

Фактический

org.springframework.jms.подключение.UserCredentialsConnectionФакториЯдаптер@1314ccc1

Прокси-организация.springframework.jms.подключение.UserCredentialsConnectionФакториЯдаптер$$EnhancerBySpringCGLIB$$bbfd1caf

 @RefreshScope
@Bean
public UserCredentialsConnectionFactoryAdapter userCredentialsConnectionFactoryAdapter() throws Exception {
    UserCredentialsConnectionFactoryAdapter userCredentialsConnectionFactoryAdapter =
        new UserCredentialsConnectionFactoryAdapter();
    userCredentialsConnectionFactoryAdapter.setUsername("username");
    userCredentialsConnectionFactoryAdapter.setPassword("password");
    userCredentialsConnectionFactoryAdapter.setTargetConnectionFactory(connFactory);

  return userCredentialsConnectionFactoryAdapter;
}
 

С Нетерпением Инициализация

 for (String beanName : applicationContext.getBeanDefinitionNames()) {
            logger.info("Refreshing bean "   beanName);
            applicationContext.getBean(beanName).getClass();
        }
 

Как получить соединение без каких-либо проблем после обновления ?