【问题标题】:How can I migrate from Spring 3.x to 5.x? [duplicate]如何从 Spring 3.x 迁移到 5.x? [复制]
【发布时间】:2020-02-24 07:38:46
【问题描述】:

我有一个 Spring 3 项目,我希望将其迁移到 Spring 5。

现在,我在下面给出的项目中有 web.xml:

<servlet-mapping>
                    <servlet-name>mvc-dispatcher</servlet-name>
                    <url-pattern>/registrationapplication/*</url-pattern>
                </servlet-mapping>
                <servlet-mapping>
                    <servlet-name>mvc-dispatcher</servlet-name>
                    <url-pattern>/maintenance/lienholder/*</url-pattern>
                </servlet-mapping>
                <servlet-mapping>
                    <servlet-name>mvc-dispatcher</servlet-name>
                    <url-pattern>/login/*</url-pattern>
                </servlet-mapping>
                <servlet-mapping>
                    <servlet-name>mvc-dispatcher</servlet-name>
                    <url-pattern>/messagemap/*</url-pattern>
                </servlet-mapping>

            <servlet>
                    <servlet-name>mvc-dispatcher</servlet-name>
                    <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class>
                    <load-on-startup>1</load-on-startup>
                </servlet>

            <context-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
                </context-param>

在迁移之前,我有一些问题。它们如下:

  1. 在从 Spring 3.0 迁移到 Spring 5 时,如何将 web.xml 中的以下行转换为基于 Java 的配置

  2. 我是否需要阅读 mvc-dispatcher-servlet.xml 还是需要迁移基于 java 的配置以在 spring 5 中转换 mvc-dispatcher-servlet.xml?

【问题讨论】:

    标签: java spring


    【解决方案1】:

    1.Spring 5 不需要更改web.xml。您可以更改 servlet 版本(如果需要)。

    它保持原样:

    Spring 的典型 web.xml:

     <?xml version="1.0" encoding="UTF-8"?>
        <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
          <display-name>example</display-name>
          <servlet>
            <servlet-name>mvc-dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
              <param-name>contextConfigLocation</param-name>
              <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
          </servlet>
          <servlet-mapping>
            <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>/</url-pattern>
          </servlet-mapping>
          <!-- Custom Servlet Mapping-->
          <servlet-mapping>
            <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>/registrationapplication/*</url-pattern>
          </servlet-mapping>
          <servlet-mapping>
            <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>/maintenance/lienholder/*</url-pattern>
          </servlet-mapping>
          <servlet-mapping>
            <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>/login/*</url-pattern>
          </servlet-mapping>
          <servlet-mapping>
            <servlet-name>mvc-dispatcher</servlet-name>
            <url-pattern>/messagemap/*</url-pattern>
          </servlet-mapping>
        </web-app>
    
    1. 您可以使用基于 Java 的配置或基于 xml 的配置。两者都受支持。您仍然可以使用旧配置。

    基于 Java 的配置将是这样的:

    public class DispatcherServletConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    
        @Override
        protected Class<?>[] getRootConfigClasses() {
            return new Class[] { Configure.class };
        }
    
        @Override
        protected Class<?>[] getServletConfigClasses() {
            return null;
        }
    
        @Override
        protected String[] getServletMappings() {
            return new String[] { "/", "/registrationapplication", "/login", "/messagemap", "/maintenance/lienholder"};
        }
    
    }
    
    @Configuration
    @EnableWebMvc 
    @ComponentScan(value = {"com.example"})
    public class Configure {
    
        @Bean
        public InternalResourceViewResolver getInternalResourceViewResolver() {
            InternalResourceViewResolver resolver = new InternalResourceViewResolver();
            resolver.setPrefix("/WEB-INF/views/");
            resolver.setSuffix(".jsp");
            return resolver;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      相关资源
      最近更新 更多