我有一个问题,我在项目上工作,其中一些部分取自已存在于JAR文件中的遗留代码。已经从这些JAR文件导入了一些Spring控制器。我希望通过扩展这些类并创建/编写新方法,在这些导入的控制器中进行Override
映射。不幸的是,我无法创建新的映射,因为我不知道旧映射出现了多少个地方,看起来整个系统是不可能的。因为我想在相同的映射上添加一些新功能,我尝试排除旧的(导入的)控制器,并且还排除了导入旧控制器的配置文件:
@ComponentScan.Filter(type = FilterType.REGEX)
Spring回来时出现了重复映射的问题,并且不允许我正确部署应用程序。
是否有任何选项可以从应用程序中排除控制器或检查控制器bean注入应用程序的位置并覆盖它?
答案 0 :(得分:2)
您可以排除来自Spring 组件扫描的类或包,如下所示。
@Configuration
@ComponentScan(
excludeFilters = {
@ComponentScan.Filter(type = FilterType.REGEX, pattern = "org.aaa.bbb.*"),
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = MyClassToExclude.class) })
通过这种方式,您可以排除旧版类。