在实现WebMvcConfigurer时保留一些Spring Boot MVC默认配置

时间:2018-08-02 05:33:05

标签: java spring

我想实现自定义addCorsMappingsaddResourceHandlers,还要保留其他Spring Boot MVC配置(例如getMessageCodesResolver

根据this文档:

  

如果您想保留Spring Boot MVC功能并添加   其他MVC配置(拦截器,格式化程序,视图   控制器和其他功能),您可以添加自己的@Configuration   WebMvcConfigurer类型的类,但没有@EnableWebMvc。如果你希望   提供RequestMappingHandlerMapping的自定义实例,   RequestMappingHandlerAdapter或ExceptionHandlerExceptionResolver,   您可以声明一个WebMvcRegistrationsAdapter实例来提供   组件。

但是实现WebMvcConfigurer需要实现我不想要的所有其他方法。

this视频教程中,没有任何问题。我怎么只能实现某些方法而不是全部?

注意:WebMvcConfigurerAdapter已过时。

1 个答案:

答案 0 :(得分:1)

Java 8引入了default methods。这基本上意味着方法的默认实现,但随后在接口上定义。

以Java 8为基线的Spring 5充分利用了这一点,对于多个接口,WebMvcConfigurer是其中之一,他们使用了此接口。 WebMvcConfigurer具有所有默认实现的方法。

这意味着您可以仅实现WebMvcConfigurerAdapter而不是扩展WebMvcConfigurer。由于默认方法,WebMvcConfigurerAdapter已被弃用,因为不再需要了。

因此从Java 8和Spring 5开始,您不再需要实现接口的所有方法。当然,接口将需要提供default方法。