【发布时间】:2017-06-29 06:27:04
【问题描述】:
我想使用ClassPathScanningCandidateComponentProvider 来搜索一个类的不同子类。但是在这种情况下我需要排除一个特殊的目录。
例子:
目录/包:
src/main/java/frstPck/scndPcksrc/test/java/frstPck/scndPck
扫描代码:
public static void example() throws ClassNotFoundException {
ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false);
provider.addIncludeFilter(new AssignableTypeFilter(Super.class));
Set<BeanDefinition> components = provider.findCandidateComponents("frstPck/scndPck");
for (BeanDefinition component : components) {
Class<?> cls = Class.forName(component.getBeanClassName());
System.out.print(cls.getSimpleName());
}
}
问题是,classpathscanning 也会找到src/test/java 的子类,而这不应该发生。有没有可能排除这些?
【问题讨论】:
-
你不能使用componentScan的excludeFilters吗? stackoverflow.com/questions/18992880/… ?
-
我已经看到了排除过滤器,但我没有找到使用它们接收预期解决方案的方法。
标签: java spring eclipse classpath scanning