如何使用注解配置SpringMVC的高级配置

2025-11-28 21:25:23

1、SpringMVC使用xml文件配置的时候,一些高级属性是通过配置文件配置,如果要通过注解的方式值需要一个注解即可。

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xmlns:p="http://www.springframework.org/schema/p"

        xmlns:context="http://www.springframework.org/schema/context"

        xmlns:mvc="http://www.springframework.org/schema/mvc"

        xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd

                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

          

          

          <mvc:default-servlet-handler/>

          

          <mvc:annotation-driven />

</beans>

如何使用注解配置SpringMVC的高级配置

2、如果使用注解的方式实现上述高级功能,只需要使用@EnableWebMvc,开启SpringMVC定制功能。

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;

import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@ComponentScan(value="com.gwolf",

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

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

@EnableWebMvc

public class AppConfig {

}

如何使用注解配置SpringMVC的高级配置

3、如果需要配置视图解析器,视图映射,静态资源映射,拦截器就需要实现一个类:WebMvcConfigurerAdapter。

如何使用注解配置SpringMVC的高级配置

4、配置视图解析器需要覆写方法:

@Override

public void configureViewResolvers(ViewResolverRegistry registry) {

      registry.jsp();

}

如何使用注解配置SpringMVC的高级配置

5、配置静态资源访问要覆写方法:

@Override

public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {

      configurer.enable();

}

如何使用注解配置SpringMVC的高级配置

6、配置SpringMVC拦截器:

package com.gwolf;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.context.annotation.ComponentScan;

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

import org.springframework.context.annotation.FilterType;

import org.springframework.stereotype.Controller;

import org.springframework.web.servlet.HandlerInterceptor;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;

import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import org.springframework.web.servlet.config.annotation.InterceptorRegistry;

import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;

import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@ComponentScan(value="com.gwolf",

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

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

@EnableWebMvc

public class AppConfig extends WebMvcConfigurerAdapter{

        @Override

        public void configureViewResolvers(ViewResolverRegistry registry) {

                registry.jsp();

        }

        @Override

        public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {

                configurer.enable();

        }

        @Override

        public void addInterceptors(InterceptorRegistry registry) {

                registry.addInterceptor(new HandlerInterceptor() {

                        

                        @Override

                        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

                                        throws Exception {

                                return true;

                        }

                        

                        @Override

                        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,

                                        ModelAndView modelAndView) throws Exception {

                                

                        }

                        

                        @Override

                        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)

                                        throws Exception {

                                

                        }

                }).addPathPatterns("/**");

        }

        

        

        

        

        

        

}

如何使用注解配置SpringMVC的高级配置

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