SpringMVC默认扫描所有带有@Controller或@RequestMapping的类和方法,如果找不到还会去父类或父接口中去找
这样像feign的那种写api,controller实现api的写法,就会被扫描两次,报Ambiguous mapping错误,可以通过以下配置,只扫描带有@Controller的类。
@Configuration
@ConditionalOnClass({Feign.class})
public class FeignConfig {
@Bean
public WebMvcRegistrations feignWebRegistrations() {
RequestMappingHandlerMapping handlerMapping = this.requestMappingHandlerMapping();
return new WebMvcRegistrations() {
@Override
public RequestMappingHandlerMapping getRequestMappingHandlerMapping() {
return handlerMapping;
}
};
}
/**
* 使SpringMVC只扫描带有@Controller的@RequestMapping,而忽略掉带有@RequestMapping的FeignClient的接口,从而避免启动报Am