我的genxml
项目中包含了(2个以上)项目,例如framework1
和framework2
。它们是同一框架的略有不同的版本,它们都具有类AbstractScreenTest.class
。每个AbstractScreenTest.class
都有不同的注释
@MyAnnotation(name="version", value = "71automation")
@MyAnnotation(name="version", value = "72automation")
无论如何使用注释或其他方法我可以指定我想在下面的代码中使用哪个AbstractScreenTest.class 时刻只使用找到的第一个实例。
ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(true);
provider.addIncludeFilter(new AssignableTypeFilter(AbstractScreenTest.class));
Set<BeanDefinition> components = provider.findCandidateComponents(candiatePackage);
答案 0 :(得分:0)
这不是Spring的问题,JVM不能在一个类加载器中同时加载两个版本的类。
加载同一类的不同版本的唯一方法是使用具有不同类路径的两个不同的类加载器。没有简单的解决方案,特别是如果这些框架使用其他可以交互的类。