gpt4 book ai didi

java - 在 Spring 中混合使用 web.xml 和 AbstractAnnotationConfigDispatcherServletInitializer

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

我在 Spring 上有一个应用程序并使用 Java Configs 来配置和初始化我的应用程序,所以我没有 web.xml .这是我的网络初始化器的样子,

public class WebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
}

@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[]{PublicApiConfig.class, MobileConfig.class};
}

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

@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
LoggingFilter loggingFilter = new LoggingFilter();
return new Filter[]{characterEncodingFilter, loggingFilter};
}

@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[0];
}
}

我需要实现 tomcat session 复制,出于目的,我需要将应用程序设置为 distributable .使用传统的 web.xml,我可以添加 <distributable/>属性,仅此而已。但是据我所知,没有办法通过 Java Configs 来做到这一点。

我的问题是是否可以混合使用 web.xml 和 java 配置,例如拥有

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">

<distributable/>

</web-app>

并将其包含在 WebInitializer 中.

最佳答案

根据 Servlet 3.0 规范,只要 web-app 版本 >= 3.0 且 metadata-complete 属性为 false(默认),就可以将 web.xml 与 Programmatic servlet 注册混合使用。根据您当前的配置,它应该可以工作

关于java - 在 Spring 中混合使用 web.xml 和 AbstractAnnotationConfigDispatcherServletInitializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37137626/

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