Tag: spring ioc

从@ComponentScan中排除@Component

我有一个组件,我想从一个特定的@Configuration @ComponentScan中排除: @Component("foo") class Foo { … } 否则,它似乎与我的项目中的其他类冲突。 我不完全理解碰撞,但是如果我注释掉@Component注解,事情就像我想要的那样工作。 但是依赖这个库的其他项目希望这个类由Spring来pipe理,所以我只想在我的项目中跳过它。 我试过使用@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:类path资源[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; } […]