У меня возникла похожая проблема при попытке смешать аннотации Spring 3.x и CDI.
Я нашел способ отключить обработку Spring @Inject
в компонентах, отличных от Spring; просто создайте фильтр исключения для классов, помеченных @Named
:
@Configuration
@ComponentScan(excludeFilters = {@Filter(Named.class)})
public class SpringConfig
{
}
или отключить фильтры по умолчанию, например:
@Configuration
@ComponentScan(useDefaultFilters = false, includeFilters = {@Filter(Component.class)})
public class SpringConfig
{
}
Это работает, потому что Spring по умолчанию устанавливает фильтр включения для javax.inject.Named
, чтобы активировать обработку JSR-330.