SpringMVC如何与Servlet3整合在一起

2025-11-22 23:07:12

1、新建一个AbstractAnnotationConfigDispatcherServletInitializer的实现类,这个类用于在web容器启动的时候创建对象,调用方法来初始化容器以及前段控制器。

package com.gwolf;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class MyWebAppInitializer extends 

        AbstractAnnotationConfigDispatcherServletInitializer {

        

        @Override

        protected Class<?>[] getRootConfigClasses() {

                return null;

        }

        @Override

        protected Class<?>[] getServletConfigClasses() {

                return null;

        }

        @Override

        protected String[] getServletMappings() {

                return null;

        }

}

SpringMVC如何与Servlet3整合在一起

2、新建一个根容器,不需要扫描Controller注解的类。

package com.gwolf;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.ComponentScan.Filter;

import org.springframework.context.annotation.FilterType;

import org.springframework.stereotype.Controller;

@ComponentScan(value="com.gwolf",

        excludeFilters= {@Filter(type=FilterType.ANNOTATION,

        classes= {Controller.class})})

public class RootConfig {

}

SpringMVC如何与Servlet3整合在一起

3、protected Class<?>[] getRootConfigClasses() 方法用于获取跟容器的配置类:相当于以前使用配置文件配置的父容器。

       @Override

        protected Class<?>[] getRootConfigClasses() {

                return new Class<?>[]{RootConfig.class};

        }

SpringMVC如何与Servlet3整合在一起

4、新建一个子容器,只需要扫描Controller注解的类,在这个配置中useDefaultFilters=false还需要设置此属性禁用默认过滤规则。

package com.gwolf;

import org.springframework.context.annotation.ComponentScan;

import org.springframework.context.annotation.FilterType;

import org.springframework.context.annotation.ComponentScan.Filter;

import org.springframework.stereotype.Controller;

@ComponentScan(value="com.gwolf",

includeFilters= {@Filter(type=FilterType.ANNOTATION,

classes= {Controller.class})},useDefaultFilters=false)

public class AppConfig {

}

SpringMVC如何与Servlet3整合在一起

5、@Override

protected Class<?>[] getServletConfigClasses()方式获取web容器的配置类(SpringMVC配置文件)子容器。

       @Override

        protected Class<?>[] getServletConfigClasses() {

                return new Class<?>[]{AppConfig.class};

        }

SpringMVC如何与Servlet3整合在一起

6、protected String[] getServletMappings() 用于获取DispatcherServlet的映射信息,我们现在拦截所有请求,但是不包括*.jsp。

       @Override

        protected String[] getServletMappings() {

                return new String[] {"/"};

        }

SpringMVC如何与Servlet3整合在一起

7、建立一个控制类,测试SpringMVC与Servlet3是否整合完成。

package com.gwolf.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

@Controller

public class HelloController {

        

        @ResponseBody

        @RequestMapping("/hello")

        public String hello() {

                return "hello";

        }

}

启动SpringMVC应用,查看程序是否能够正常执行。

SpringMVC如何与Servlet3整合在一起

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢