исключить @Component из @ComponentScan

У меня есть компонент, который я хочу исключить из@ComponentScan в частности:@Configuration

@Component("foo") class Foo {
...
}

В противном случае, это похоже на конфликт с каким-то другим классом в моем проекте. Я неЯ не совсем понимаю столкновение, но если я закомментирую@Component аннотации, все работает так, как я хочу. Но другие проекты, использующие эту библиотеку, ожидают, что этим классом будет управлять Spring, поэтому я хочу пропустить его только в своем проекте.

Я пытался с помощью:@ComponentScan.Filter

@Configuration 
@EnableSpringConfigured
@ComponentScan(basePackages = {"com.example"}, excludeFilters={
  @ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value=Foo.class)})
public class MySpringConfiguration {}

но это неПохоже на работу. Если я попытаюсь использоватьFilterType.ASSIGNABLE_TYPEЯ получаю странную ошибку из-за невозможности загрузить какой-то, казалось бы, случайный класс:

Причина: java.io.FileNotFoundException: ресурс пути к классу [junit / framework / TestCase.class] не может быть открыт, потому что он не существует

Я также пытался использоватьtype=FilterType.CUSTOM следующим образом:

class ExcludeFooFilter implements TypeFilter {
    @Override
    public boolean match(MetadataReader metadataReader,
            MetadataReaderFactory metadataReaderFactory) throws IOException {
        return metadataReader.getClass() == Foo.class;
    }
}

@Configuration @EnableSpringConfigured
@ComponentScan(basePackages = {"com.example"}, excludeFilters={
  @ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE, value=Foo.class)})
public class MySpringConfiguration {}

Но это неКажется, я не могу исключить компонент из сканирования.

Как я могу исключить это?

Ответы на вопрос(7)

Ваш ответ на вопрос