何时实现WebMvcConfigurer来配置Spring MVC?

2024-03-16

我正在学习带有 Java 配置(无 xml)的 Spring MVC,我有一个简单的问题。我看到有两种配置 Spring bean 的方法:

方法一:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages="com.demo.springmvc")
public class DemoAppConfig {

    // define a bean for ViewResolver

    @Bean
    public ViewResolver viewResolver() {

        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

        viewResolver.setPrefix("/WEB-INF/view/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }

}

方法2:

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.example")
public class SpringConfig implements WebMvcConfigurer{

    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
        viewResolver.setViewClass(JstlView.class);
        viewResolver.setPrefix("/WEB-INF/pages/");
        viewResolver.setSuffix(".jsp");

        return viewResolver;
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

}

因此,一种方法是实现 WebMvcConfigurer 接口,另一种方法是不实现 WebMvcConfigurer 接口。我想问你有什么区别?当我实现这个接口时会发生什么,当我不实现它时会发生什么。任何反馈将不胜感激。


实施WebMvc配置器允许您配置 Spring MVC 配置。对于所有未实现的方法,都使用默认值。

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurer.html https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/config/annotation/WebMvcConfigurer.html


至于@Bean public ViewResolver viewResolver(),这个bean定义的位置实际上和这个类完全无关,可以放在Spring扫描bean的任何地方。该指南可能有点令人困惑,给人的印象是这两件事在某种程度上有关联。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

何时实现WebMvcConfigurer来配置Spring MVC? 的相关文章

  • 启动 Java 时使用 -d32 和 -d64

    我阅读了以下摘录JDK 常见问题解答 http www oracle com technetwork java hotspotfaq 138619 html 64bit layering 如何在 32 位和 64 位操作之间进行选择 默认是
  • 是什么使得 java 中的枚举不可实例化?

    我知道一个枚举 enum Year First Second Third Fourth 被转换成 final class Year extends Enum
  • 在多个不同线程之间共享变量

    我想在多个线程之间共享一个变量 如下所示 boolean flag true T1 main new T1 T2 help new T2 main start help start 我想分享flag在主线程和帮助线程之间 这是我创建的两个不
  • Android 在 ROOM 数据库中插入大量数据

    我有大约 10 个模型 每个模型都有超过 120K 行和 90 列的记录 其中包含双数组值 在 Room 中插入任何模型都需要超过 125 130 秒 任何人都可以建议我需要做什么才能使用一些批量插入技术来保存所有这些 120K 该技术大约
  • 在 ElasticSearch API 应用程序中找不到 NodeBuilder

    我正在尝试实现 Elasticsearch API 我的系统接受 nodeBuilder 时出现错误 这是代码 import org elasticsearch action index IndexResponse import org e
  • Netflix Archaius 动态配置

    我正在将 Hystrix 集成到现有项目中 并且希望从 xml 文件中读取配置值 而不是使用配置管理器提供配置属性 当 xml 文件中的值更新时 我希望 Hystrix 配置在运行时更新 这是我遵循的指南 https github com
  • 使用 python 中的 java 库

    我有一个 python 应用程序和 java 应用程序 python 应用程序为 java 应用程序生成输入并在命令行上调用它 我确信一定有一个更优雅的解决方案 就像使用 JNI 从 Java 调用 C 代码一样 有什么指点吗 仅供参考 我
  • 运行Java程序时出错

    我正在尝试使用 netbeans 运行我的 java 程序 但收到此错误 有什么建议吗 Exception in thread AWT EventQueue 0 java lang NullPointerException at javax
  • 非法监控状态异常

    如何将轮询线程传递给另一个线程进行处理 程序执行在控制器类中 该类具有 main 方法和线程池 主类控制器 public static void main String args throws InterruptedException Ru
  • Postgres UUID 和休眠

    我有一个具有 UUID 列的实体 它不是主键 我正在使用 Postgres 和 hibernate 我对此专栏的类型是https www postgresql org docs 9 1 static datatype uuid html h
  • Spring Boot,使用 EhCache 进行缓存

    我需要在我的应用程序中缓存一些数据 我正在考虑使用 Ehcache 我有几个问题 Ehcache需要另外一台服务器吗 我需要其他客户端来使用 Ehcache 吗 Ehcache 如何与多个实例配合使用 是否有可能使用 Ehcache 创建类
  • 关于 mongodb java 驱动程序的困惑[重复]

    这个问题在这里已经有答案了 我是 MongoDB 的初学者 我正在使用 JAVA 驱动程序来使用它 我有以下代码 MongoClient client new MongoClient DB d client getDB world DBCo
  • 使用 Hibernate 作为 ORM 机制的 Web 应用程序中的 L1 和 L2 缓存有什么区别?

    我只想要一些有关使用 L1 缓存和 L2 缓存的标准用途的一般信息 我很好奇 因为我正在研究使用赤土陶器作为二级缓存的系统 并且我发现它也有一级缓存 L1 缓存是每个 Hibernate 会话都存在的缓存 并且该缓存不在线程之间共享 该缓存
  • 如何在 groovy 中将输出重定向到 stderr?

    我正在寻找一种将 groovy 脚本中的输出重定向到 stderr 的方法 catch Exception e println Want this to go to stderr 就在我的脑海中 你不能做一些自我接线吗 def printE
  • Cordova Android 应用程序中的网页不可用

    编辑 我一直在解决这个问题并回顾我的所有步骤 我很乐意缩小这个问题的规模 并在令人困惑的情况下获得更多确切的细节 目前 我觉得 Keycloak 似乎只想将我重定向到 https 据我所知 这应该是 Wildfly 服务器配置问题 编辑 我
  • 如何从 Java 类调用 Kotlin 类

    我需要将意图从 java 活动传递到 Kotlin 活动 Java活动ProfileActivity class Intent selectGameIntent new Intent ProfileActivity this kotlin
  • 定时器启动/停止参数

    自从加入这个社区以来 我在技能和进步方面取得了突飞猛进的进步 你们都是一个巨大的帮助 我无法提供一个计时器 该计时器已在启动和停止时实现了某些参数 我要么收到错误消息 局部变量计时器可能尚未初始化 要么没有收到错误消息 但什么也没有发生 也
  • 如何将 JAVAX-WS 端点绑定更改为 SOAP 1.2?

    我正在使用发布测试 WS 实现Endpoint publish 用于在 Visual Studio 中使用 根据文档 http metro java net nonav 1 2 docs endpoint html默认的 SOAP 绑定是1
  • 如何提高QNX6下Eclipse IDE的性能

    我们在 VMWare 环境中通过 QNX6 运行 Eclipse 速度非常慢 Eclipse 是这样启动的 usr qnx630 host qnx6 x86 usr qde eclipse eclipse data root workspa
  • 确定方法调用顺序的接口设计模式

    我想创建一个具有多种方法的 Java 接口 但我希望界面的用户只能按照我定义的顺序或顺序调用方法 例如buyTicket 不应在此之前调用reserveTicket 问 有没有设计模式或任何关于如何做到这一点的提示 我考虑过 A 接口被包装

随机推荐

  • Mac OS 登录项是否带有参数?

    在 Mac OS 中 我创建了一些 AppleScript 来添加和删除启动应用程序 帐户 系统窗格下的 登录项 bin bash usr bin osascript e tell application System Events to
  • 在最后一次出现的字符处拆分然后连接

    我想分割一个attribute在最后一次出现字符时 添加一个字符串并将数组重新连接在一起 这是一个简化的demo https jsfiddle net Ldjoqtk1 1 在演示中我想拆分src最后一次出现的属性 然后添加 fx to t
  • Node.js 生成的 csv 文件显示英镑符号 (£)

    我正在用这个json2scv https github com zemirco json2csv包解析我的数据 示例 json 数据在下面的代码中描述 我正在尝试使用以下代码在我的 Node js 应用程序中生成 CSV 文件 如果我在 E
  • jquery 对话框打开时窗口向上滚动

    我正在尝试使用 jquery 1 4 和 jquery ui 1 8rc3 custom js 打开模态 jquery 对话框 在所有浏览器中 对话框打开都没有问题 但在 IE 7 和 6 中 对话框打开后 窗口会自行滚动到底部 我尝试将窗
  • 如何将 Selenium 输出导出到 PHP?

    Firefox 的 Selenium IDE 似乎没有默认导出到 PHP 我需要 Selenium 才能将其输出转换为 PHP 以在 Drupal 中使用 如何安装PHP语言导出才能达到这个目标 现在它是 mozilla 中的一个附加组件
  • 显示 GDB 中当前的汇编指令

    我正在 GDB 中进行一些汇编级调试 有没有办法让 GDB 以与显示当前源代码行相同的方式显示当前的汇编指令 每个命令后的默认输出如下所示 0x0001433f 990 Foo bar p 这给了我当前指令的地址 但我必须继续参考disas
  • Bokeh HTML 模板格式化程序不起作用

    请看一下页面 https docs bokeh org en latest docs reference models widgets tables html bokeh models widgets tables HTMLTemplate
  • Express 路由器参数验证

    Express 4x api 文档声称您可以将正则表达式作为第二个参数传递给router param http expressjs com 4x api html router param为了验证参数 该方法现在可用于有效验证参数 以及 可
  • Unity如何在玩家移动时让我的枪停止射击?

    I am making a gun shooting script but I do not know how to disable shooting when the player is running Can someone help
  • fancyBox2:幻灯片按钮和图像边框

    是否可以只有幻灯片开 关按钮和位置 标题区域内的某个地方 我想要这个的原因是 因为按钮栏缩小了显示图像的大小 我只想有这个选项 打开或关闭幻灯片 导航通过正常的左右方向完成 单击图像 是否可以减少图像周围的边框 尤其是底部边框 我尝试了填充
  • 通过 TeamViewer 连接时全屏 WPF 应用程序崩溃

    我创建了一个运行相当稳定的 WPF 应用程序 但有一个问题我无法解决 当我通过 TeamViewer 版本 11 连接到正在运行 WPF 应用程序 全屏模式 的平板电脑时 应用程序崩溃 当我结束远程连接时也会发生同样的情况 我得到以下异常
  • Ubuntu 14.02 上的 Tkinter 将宽度报告为两个显示器的总和

    我在新的 Ubuntu 14 02 机器上有两个显示器 一台显示器为 1024X768 VGA 第二台显示器是 1920X1080 HDMI 无论我做什么 root winfo screenwidth 报告 2944 两个显示器的总和 如果
  • 如何使用 Spring Security 保护 Vaadin 流应用程序

    我正在尝试将 vaadin 10 与 spring security 集成 使用 vaadin 提供的 spring 项目库 但我对它们如何准确交互感到困惑 如果我转到受保护的网址 在本例中为 about 直接在浏览器中键入它 则会显示登录
  • 如何使用jquery仅从文本中获取数字

    我只想获取数字 123 而不是文本 确认 这是我的代码 p 123confirm p 我认为 RegExp 是个好主意 var sd this text replace 0 9 gi Replace everything that is n
  • 如何使用 python 的 beautiful soup 获取标签之间的内容及其以 HTML 结尾的内容?

    我有一个 HTML 行 如下所示 span class cd headline text Is this model too thin for Yves Saint Laurent span 我想提取标题 即 这个模型对于 Yves Sai
  • 传单地图上的 d3 圆圈

    我使用以下代码生成带有圆圈的地图 http jsbin com OTaKEDor 2 edit http jsbin com OTaKEDor 2 edit
  • 底层连接已关闭:(HttpWebRequest) - C#

    我正在编写一段代码来通过 POST 请求验证用户名和密码 但收到一条错误消息 提示 底层连接已关闭 我正在尝试将带有 GET 请求的旧代码转换为带有 POST 请求的新代码 我的 GET 代码工作正常 旧代码 string url http
  • sed 命令的子进程调用给出错误

    我有一个文本文件 其中包含以下行 PIXEL SCALE 1 0 size of pixel in arc 要将其中的 1 0 替换为 0 3 我尝试通过 python 脚本中的 subprocess call 使用 sed 遵循 sed
  • Maven - 从子 pom 访问父 pom 上的属性

    在多模块项目结构中 myApp moduleA pom xml moduleB pom xml pom xml 如果我在parent pom中有以下属性
  • 何时实现WebMvcConfigurer来配置Spring MVC?

    我正在学习带有 Java 配置 无 xml 的 Spring MVC 我有一个简单的问题 我看到有两种配置 Spring bean 的方法 方法一 Configuration EnableWebMvc ComponentScan baseP