Проблема с весенним обновлением 4.3.3 до 5.2.7 @Scope (ConfigurableBeanFactory.SCOPE_PROTOTYPE) - PullRequest
0 голосов
/ 06 августа 2020

После обновления Spring с 4.3.3 до 5.2.7 у меня возникла проблема с аннотацией @ scope ("prototype") метода с @Bean. на самом деле Spring пытается инициализировать bean-компонент при запуске, хотя я его нигде не использую (я пробовал удалить bean-компонент или переименовать его и перезапустить приложение, и все работает нормально но когда я добавляю его снова, у меня такое же исключение)

ИСКЛЮЧЕНИЕ

Related cause: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'MyBean' defined in com.test: Unsatisfied dependency expressed through method 'MyBean' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.lang.String' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 

PS: Я уверен, что не использую bean в любом месте при запуске Мне просто нужно, когда приложение уже запущено

УПРОЩЕННЫЙ КОД

@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@SuppressWarnings({ "unchecked" })
public MyBean MyBean(String url,
        String user, String password, String id) {
    return MyBean(url, user, password, id,
            new HashMap<String, String>(),false); 
}

Я уже пробовал использовать Необязательный в качестве параметров и @ Nullable , и он не работает, потому что мне нужно проверить, присутствуют ли параметры, в противном случае я должен вернуть null, и это вызовет другую проблему весной

 Bean instance of type [class org.springframework.beans.factory.support.NullBean] is not a FactoryBean

, и в моем случае мне не нужно редактировать тип параметров и тип возвращаемого компонента, иначе я могу вызвать регресс в существующем коде

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