我想实现自定义addCorsMappings
和addResourceHandlers
,还要保留其他Spring Boot MVC配置(例如getMessageCodesResolver
)
根据this文档:
如果您想保留Spring Boot MVC功能并添加 其他MVC配置(拦截器,格式化程序,视图 控制器和其他功能),您可以添加自己的@Configuration WebMvcConfigurer类型的类,但没有@EnableWebMvc。如果你希望 提供RequestMappingHandlerMapping的自定义实例, RequestMappingHandlerAdapter或ExceptionHandlerExceptionResolver, 您可以声明一个WebMvcRegistrationsAdapter实例来提供 组件。
但是实现WebMvcConfigurer
需要实现我不想要的所有其他方法。
在this视频教程中,没有任何问题。我怎么只能实现某些方法而不是全部?
注意:WebMvcConfigurerAdapter
已过时。
答案 0 :(得分:1)
Java 8引入了default methods。这基本上意味着方法的默认实现,但随后在接口上定义。
以Java 8为基线的Spring 5充分利用了这一点,对于多个接口,WebMvcConfigurer
是其中之一,他们使用了此接口。 WebMvcConfigurer
具有所有默认实现的方法。
这意味着您可以仅实现WebMvcConfigurerAdapter
而不是扩展WebMvcConfigurer
。由于默认方法,WebMvcConfigurerAdapter
已被弃用,因为不再需要了。
因此从Java 8和Spring 5开始,您不再需要实现接口的所有方法。当然,接口将需要提供default
方法。