我有 2 个工件包含在主项目中。第一个包含包“com.parent.controller
”。第二个 - “com.child.controller
”。
每个包都包含一个 Controller - 分别是 ParentController
和 ChildContoller
。它们都有相同的 RequestMapping(例如“/abc
”)。我还为 ParentController
添加了排除过滤器。但无论如何我有一个异常(exception):
java.lang.IllegalStateException:不明确的映射
。如何解决?
@SpringBootConfiguration
@EnableAutoConfiguration
@EntityScan(basePackages = {"com.parent", "com.child"})
@ComponentScan(basePackages = {"com.parent", "com.child"}, excludeFilters = {
@ComponentScan.Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@ComponentScan.Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class),
@ComponentScan.Filter(type = FilterType.REGEX, pattern = "com\\.parent\\..*Controller"),
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = ParentController.class)
})
UPD 1。包层次结构:
- com
- parent
- controller
- ParentController
- service
- dao
- entity
- child
- controller
- ChildController
- service
- dao
- entity
最佳答案
不要扫描com.parent
根包。分别扫描每个子包,例如com.parent.entities
。那就不需要排除了。
如果这不起作用,请发布父包和子包层次结构以获取具体说明。
关于java - Controller 排除不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45908456/