如何在 Spring Boot 中获取 DispatcherServeletInitializer 功能

2023-12-02

我们正在寻求将我们的项目迁移到 Spring Boot。但目前尚不清楚如何复制其功能AbstractAnnotationConfigDispatcherServletInitializer在 Spring Boot 中?

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer
{
@Override
protected Class<?>[] getRootConfigClasses()
{
    return new Class<?>[]{AppConfig.class};
}

@Override
protected Class<?>[] getServletConfigClasses()
{
    return new Class<?>[]{WebappConfig.class};
}
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
    registration.setAsyncSupported(true);
}

@Override
protected String[] getServletMappings()
{
    return new String[]{"/"};
}

@Override
protected Filter[] getServletFilters()
{
    DelegatingFilterProxy shiroFilter = new DelegatingFilterProxy("shiroFilter");
    shiroFilter.setTargetFilterLifecycle(true);

    CompositeFilter compositeFilter = new CompositeFilter();
    compositeFilter.setFilters(ImmutableList.of(new CorsFilter(),shiroFilter));

    return new Filter[]{compositeFilter};
}

}


The AppConfig and WebappConfig父/子关系可以通过以下方式处理SpringApplicationBuilder,尽管您也可以考虑平面层次结构。

假设您全力以赴,并运行一个嵌入式 servlet 容器,您可以注册Filters and Servlets直接作为豆子。

您还可以使用ServletRegistrationBean and FilterRegistrationBean如果您需要设置诸如setAsyncSupported。最后的选择是添加一个实现org.springframework.boot.context.embedded.ServletContextInitializer然后自己进行注册。

像这样的事情可能会让你更进一步:

@Bean
public ServletRegistrationBean dispatcherServlet() {
    ServletRegistrationBean registration = new ServletRegistrationBean(
            new DispatcherServlet(), "/");
    registration.setAsyncSupported(true);
    return registration;
}

@Bean
public Filter compositeFilter() {
    CompositeFilter compositeFilter = new CompositeFilter();
    compositeFilter.setFilters(ImmutableList.of(new CorsFilter(), shiroFilter));
    return compositeFilter
}

另外,请查看参考手册中的这一部分http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-embedded-container

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

如何在 Spring Boot 中获取 DispatcherServeletInitializer 功能 的相关文章

  • 有没有办法检索有关 @Controller 定义的 spring 映射的信息?

    我希望能够创建一个页面 列出由带有注释的控制器发现的映射 Controller 我这样做是为了 REST 服务 它使我们能够轻松找到页面上实例可用的端点 到目前为止 我一直在手动执行此操作 但如果可以创建一个控制器 以一种令人愉快的格式很好
  • Spring Boot 和 Spring IO 之间有什么关系?

    Spring有一个新项目叫spring IOhttp platform spring io platform http platform spring io platform 目前还不清楚该项目和 Spring Boot 之间有什么区别 我
  • Java 相当于 Perl 的 s/// 运算符?

    我有一些代码正在从 Perl 转换为 Java 它大量使用了正则表达式 包括s 操作员 我已经使用 Perl 很长时间了 但仍然习惯 Java 的做事方式 特别是 字符串似乎更难使用 有谁知道或有一个完全实现的Java函数s 这样它就可以处
  • 到底什么是哈希冲突

    HashMap 中的哈希冲突或哈希冲突并不是一个新主题 我遇到过几个博客和讨论板 以模糊且详细的方式解释如何产生哈希冲突或如何避免它 我最近在一次采访中遇到了这个问题 我有很多事情要解释 但我认为很难准确地给出正确的解释 抱歉 如果我的问题
  • IntSummaryStatistics的summaryStatistics方法

    为什么空 IntStream 上的 summaryStatistics 方法返回整数的最大和最小值作为流中存在的最大和最小 int 值 IntStream intStream IntStream of IntSummaryStatistic
  • 在 JavaFX 中更改 ListView 字体大小

    我想知道如何更改 JavaFx 中的列表视图项目文本字体大小 每行文本的大小会有所不同 我尝试使用细胞因子属性 但我不知道如何使用它 有人可以帮我吗 类似的问题在这里 如何更改JavaFX中ListView的字体大小 https stack
  • 读取不失真的灰度 PNG 图像文件

    我需要读取和处理大量的灰度 PNG 文件 我的意思是 如果它们在 Photoshop 或 GIMP 中打开 则图像模式为灰度 而不是具有灰度值的 RGB 图像 ImageIO 似乎没有实现这一点 它似乎将所有图像文件视为 sRGB 这会破坏
  • 如何在不同的班级中启动和停止计时器?

    我想测量从传入 HTTP 请求开始到应用程序到达某个点的时间 这两个时间点都位于不同的类中 我将如何启动和停止这些不同类别的计时器 我没有看到使用 MeterRegistry 中的 命名 计时器的方法 我该怎么办呢 您可以使用 AOP 如下
  • Java 空值检查

    我有一个thread1 if object null object play 和另一个thread2可以写null into object随时参考 我将同时运行这些线程 我知道thread2可以重写object后参考null检查并会抛出Nu
  • 将字符串转换为字符并按降序排序(ascii)

    我正在创建一个程序 该程序将使用户输入整数 一个接一个 存储在数组中并按降序显示整数 该程序还要求用户输入一个字符串 使用以下命令将其转换为字符string toCharArray 我已经正确地按降序显示整数 问题是我不知道如何按降序显示字
  • 如何从 java.sql.Blob 类型的 zip 文件中读取和提取 zip 条目,而无需将 FileInputStream 或文件路径作为字符串 java

    public static void unzipFiles java sql Blob zip throws Exception String paths byte blobAsBytes zip getBytes 1 int zip le
  • 通过 ssh 发送命令并读取输出结果

    我有代码通过 ssh 连接到远程服务器并向其发送 2 个或更多命令 例如 cd export home ops bin和 viewlinkload time 20131205 19 但我没有看到命令执行 也没有收到结果 我需要获取服务器返回
  • 使用 InputStream 通过 TCP 套接字接收多个图像

    每次我从相机捕获图像时 我试图将多个图像自动从我的 Android 手机一张一张地发送到服务器 PC 问题是read 函数仅在第一次时阻塞 因此 从技术上讲 只有一张图像被接收并完美显示 但在那之后当is read 回报 1 该功能不阻塞
  • 文档过滤器在 Java 中不起作用?

    在超过 10 个字符的文本字段中 它必须显示错误 为此 我使用了文档过滤器 JTextField field JTextField txtFld AbstractDocument document AbstractDocument fiel
  • 如何从 jenkins 的现有项目生成 .hpi 插件

    我正在尝试使用 jenkins 的性能插件 但最新版本存在一些问题 如链接中所述 https issues jenkins ci org browse JENKINS 27100 https issues jenkins ci org br
  • 删除Java中重载的方法

    有2个重载方法 这些方法中的每一个都将一种类型的列表转换为不同类型的列表 但第一种方法使用比较器 class SomeClass public static
  • 用 lambda 表达式替换匿名函数

    我在 Java 8 映射操作中传递一个函数 Intellij 告诉我它可以用 lambda 表达式替换 但我不知道如何在不创建中间对象结构的情况下做到这一点 这就是我所做的 List
  • 在java中打印阿拉伯字符串

    我试图在 java 中显示阿拉伯语文本 但它显示垃圾字符 示例 或有时在我打印时仅显示问号 我如何才能打印阿拉伯语 我听说它与unicode和UTF 8有关 这是我第一次使用语言 所以不知道 我正在使用 Eclipse Indigo IDE
  • 将 JSON 发送到 Spring MVC 控制器

    我正在尝试将 JSON 发送到 Spring MVC 控制器 在 Spring MVC 方面 一切都配置正确 下面是代码 但似乎没有运行
  • 在没有 ODBC 的情况下从 Java 操作 Access 数据库

    我想从我的 Java 项目操作 Microsoft Access 数据库 accdb 或 mdb 文件 我不想使用 Microsoft 的 JDBC ODBC Bridge 和 Access ODBC 驱动程序 因为 JDBC ODBC 桥

随机推荐

  • Python 中 matplotlib 和 seaborn 之间的绘图不一致

    我正在尝试使用添加错误栏plt errorbar to a pointplot在海博恩 import matplotlib import matplotlib pylab as plt import seaborn as sns impor
  • 用于连接和删除公共前缀的 SQL 查询

    我有一些数据 id ref 1 3536757616 1 3536757617 1 3536757618 并想要得到结果 1 3536757616 7 8 所以本质上数据是在 id 上聚合的 引用连接在一起 用斜杠 分隔 但删除了任何公共前
  • 如何获取 perl 系统调用的 CPU 时间?

    我有一个 perl 脚本 它使用以下命令调用外部可执行文件system 我想测量这些外部程序占用的 CPU 秒数 理想情况下 我想使用内置的 shell 来运行它们time命令 这是在 Linux 系统上 像这样的东西 system tim
  • firebase 云函数 context.auth 字段是否适用于 firestore? [复制]

    这个问题在这里已经有答案了 使用firestore时是否可以通过context auth属性获取触发云功能的用户的uid exports updateReport functions firestore document groups gr
  • PostgreSQL 和 JDBC 的 ClassNotFoundException

    我在与 Java 和 PostgreSQL 数据库建立连接时遇到一些困难 我已经下载了JDBC4 Postgresql 驱动程序 版本 9 2 1002驱动程序并正确设置应用程序 ClassPath 我的代码如下 import java s
  • socket.io 房间或命名空间?

    我正在研究 nodejs socket io 进行实时聊天 我需要一些关于实施房间的建议 使用命名空间或使用房间功能来完全隔离聊天组 哪个更好 房间和命名空间之间真正的技术区别是什么 资源使用情况有区别吗 这就是命名空间和房间所具有的共同点
  • 强制 CMake 查找 x64 位库而不是 x32

    因此 我一直在 stackoverflow 和其他一些论坛中查找如何强制 CMake 查找 x64 库而不是 x32 但它并没有多大帮助 当我做 find package Boost 1 67 0 COMPONENTS atomic REQ
  • 如何在 macOS 终端中批量重命名文件?

    我有一个包含一系列文件的文件夹 名为 prefix 1234 567 png prefix abcd efg png 我想批量删除一个下划线和中间内容 因此输出将是 prefix 567 png prefix efg png 相关但不完全解
  • 我可以将 Zend PDT (eclipse) 链接到浏览器操作吗?

    是否可以在 Eclipse 中配置 Zend PDT 调试器 以与 Eclipse 的 Java 调试器类似的方式从浏览器操作中命中断点 IE 设置断点 启动调试器 浏览站点 然后在遇到断点时进入断点 我可以调试单个脚本和网页 但是我正在尝
  • 如何解析网页

    我试图从 EnviroCanada 天气页面中提取以下内容 我试图按照以下方式获取每小时的数据 时间 大腿 特洛 湿度 7 00 23 23 22 9 22 9 30 提取的 HTML 页面 tr td class text center
  • 如何在 XSLT 中保留元素的开始标记内的空格

    为了避免将敏感信息提交到 SCM 存储库 我编写了一个 XSL 样式表 用于从 ASP NET 中删除连接字符串密码Web config文件 它实现了我删除密码的目标 但它也会影响元素开始标签内的空白 如果可能的话 我想保留这个空白 例如
  • 如何通过 C# 代码更改已过期的 sql server 密码?

    当您使用 SqlConnection 连接到 MS Sql Server 时 如果密码已过期 您将收到 SqlException 编号 18487 或 18488 如何在连接尝试期间更改代码中的用户密码 使用静态SqlConnection
  • 如何允许其他人访问由 Google Apps 脚本制作的网络应用程序?

    我从 Google Apps 脚本部署了一个网络应用程序 但其他人似乎无法运行它 当我登录谷歌时 它运行得很好 我不断得到 要求分享 电子邮件 即使我将源脚本设置为 在网络上公开 执行应用程序 被设定为 用户访问网络应用程序 该应用程序的链
  • Azure Pipelines 第二个作业找不到第一个作业的结果

    我正在开始使用 azure pipelines yml 我想在同一阶段有两份工作 一个用于构建解决方案 另一个用于运行单元测试 问题是第二个作业执行了脚本步骤 但没有找到文件夹Release前一个应该已经创建 trigger master
  • PHP simplexml_load_file 捕获 403

    我正在使用以下 PHP xml simplexml load file request url or die url not loading I use status xml gt Response gt Status gt code 检查
  • Laravel RESTful 控制器参数

    我使用 Laravel 4 和 Angular JS 来使用 RESTful 控制器处理 http 请求 我有一个 RESTful 控制器 UserController具有以下功能 public function getIndex is R
  • 怎样清除手指上的油漆?

    我是 android 新手 我在 Api Demo 中的 FingerPaint java 的帮助下使用手指准备了一个绘画视图 它工作正常 同一个视图包含一个按钮 清除 如果我们单击按钮绘画将被清除 空屏幕和一个按钮 我的问题是如何清除绘画
  • 如何避免Java中的ResultSet已关闭异常?

    一旦我的代码到达我的while rs next 循环它产生ResultSet是关闭异常 是什么原因导致此异常以及如何纠正它 EDIT 我注意到我的代码中正在嵌套while rs next 与另一个循环 rs2 next 两个结果集都来自同一
  • iOS Safari Mobile 不会仅触发一次 pageshow

    iOS Safari 在以下情况下似乎不会触发 pageshow 事件 假设我有 3 页 页面 A 在 pageshow 事件中有一些代码 Page B Page C 用户导航自A gt B 按后退按钮 页面显示触发正常 然后 用户导航到另
  • 如何在 Spring Boot 中获取 DispatcherServeletInitializer 功能

    我们正在寻求将我们的项目迁移到 Spring Boot 但目前尚不清楚如何复制其功能AbstractAnnotationConfigDispatcherServletInitializer在 Spring Boot 中 public cla