gpt4 book ai didi

java - WebMvcConfigurer的默认方法在哪里

转载 作者:行者123 更新时间:2023-11-30 06:18:57 24 4
gpt4 key购买 nike

这是来自 WebMvcConfigurerAdapter ,Spring 官方文档。

Deprecated. as of 5.0 WebMvcConfigurer has default methods (made possible by a Java 8 baseline) and can be implemented directly without the need for this adapter

我查看了WebMvcConfigurer的源代码但我找不到带有关键字“default”的单个方法。

WebMvcConfigurer 到底是如何定义默认方法的?

我必须承认我不明白

(made possible by a Java 8 baseline)

我尝试用谷歌搜索,但没有找到“Java 8 基线”。 (某种新功能?)

目前,我的本地设置使用 WebMvcConfigurer 接口(interface),所有方法都是自动生成的,并且方法主体中没有任何内容。

我大致遵循 Spring REST 指南,到目前为止一切似乎都正常。

这到底是如何工作的?

编辑

我对 WebMvcConfigurer 产生了怀疑。也就是说,它仅添加或自定义配置。我使用带有 @EnableWebMvc 的配置类测试了我的本地设置,没有扩展或实现任何类或接口(interface),并且在类主体中没有任何配置。一切(非常简约的 json 响应)都工作正常。

所以我的猜测是,如果我实现 WebMvcConfigurer 并将方法体留空并不重要。

不过,我好奇的是,为什么文档说 WebMvcConfigurer 有默认方法?

最佳答案

在此配置类的上下文中,Spring 5 与其早期版本之间的区别在于,早期开发人员使用 WebMvcConfigurerAdapter,它是一个实现 WebMvcConfigurer 的 abstract

如果我们仔细研究这样做的原因,一切都会一目了然。
WebMvcConfigurerAdapter 类的第一行表示,带有空方法的 WebMvcConfigurer 实现,允许子类仅覆盖它们感兴趣的方法
因此,如果有人想自己编写配置,他们必须在 WebMvcConfigurer 中给出每个方法的实现。
因此,Spring 创建了一个抽象类,以便开发人员可以选择他们想要使用的所需功能。

自从 JAVA 8 开始,interfaces 就带有 default 实现,Spring 开发人员找到了一种摆脱 abstract 类的方法,方法是提供interface 本身而不是 abstract 类中的默认实现。

因此,default 关键字被添加为 WebMvcConfigurer 中每个方法的前缀

关于java - WebMvcConfigurer的默认方法在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48575191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com