До обновления с Spring Boot 2.0.3 до 2.2.4 у нас были некоторые аннотации, подобные следующему примеру:
import org.springframework.stereotype.Component;
@Component
public @interface Adapter {
}
Во время классов ComponentScan, аннотированных с помощью этой аннотации Adaptor, они были подобраны и добавлены к Весенний контекст. После обновления теперь есть org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'XY' available
.
Согласно отрывку из терминологии Модель программирования весенних аннотаций относительно аннотаций стереотипов, наш подход должен работать:
Любой компонент, помеченный @Component, является кандидатом на сканирование компонентов. Точно так же любой компонент, помеченный аннотацией, которая сама является мета-аннотированной @Component, также является кандидатом на сканирование компонентов.
Я прочитал примечания к выпуску Spring Boot 2.1 и 2.2 и примечания к выпуску Spring Framework 5.1 и 5.2, но ничего не нашел, что поведение аннотаций стереотипа изменилось в этой точке.
Когда я аннотирую классы с помощью аннотации стереотипа, предоставленной Spring (в дополнение к нашей собственной аннотации), они выбираются с помощью ComponentScan.
Я также пытался установить пользовательский фильтр в @ComponentScan
, как это
@ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,
classes = Adapter.class))
, но все равно получил NoSuchBeanDefinitionException
Наконец Я наткнулся на это «Улучшение» в Spring Framework и подумал, может ли это быть root моей проблемы.
Так что пока ничего не получалось, и я был бы рад, если бы кто-то мог Направьте меня в направлении, которое восстанавливает первоначальное поведение, когда наши собственные аннотации стереотипов снова работают. Заранее спасибо.