メインプロジェクトには2つのアーティファクトが含まれています。最初のパッケージにはパッケージ "com.parent.controller
"が含まれています。 2番目は - "com.child.controller
"です。コントローラ除外が機能しません
各パッケージには、それぞれコントローラ-ParentController
とChildContoller
が含まれています。どちらも同じRequestMappingを持っています(たとえば、「/abc
」など)。また、ParentController
のフィルタを除外しました。しかし、いずれにしても私は例外があります: java.lang.IllegalStateException: Ambiguous mapping
。それを修正するには?
@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
同じマッピングを持つ2つのコントローラを使用する理由は何ですか? –
@AbhijitSarkar、親アーティファクトは外部の変更不可能なライブラリです。そして、私はそれからいくつかのマッピングをオーバーライドしたいと思います。 –