java config配置springMVC

Posted 小小本科生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java config配置springMVC相关的知识,希望对你有一定的参考价值。

        按照传统方式,像DispatcherServlet这样的Servlet会配置在web.xml文件中,这个文件会放到应用的WAR包里面。当然,这是配置DispatcherServlet的方法之一。但是,借助于Servlet 3规范和Spring3.1的功能增强,这种方式已经不是唯一的方案了。

        首先创建一个类MyDispatcherServletInitializer继承AbstractAnnotationConfigDispatcherServletInitializer并实现它的三个方法(任何继承AbstractAnnotationConfigDispatcherServletInitializer的类都会自动地配置DispatcherServlet和spring应用上下文,Spring的应用上下文会位于应用程序的Servlet上下文之中)。

package com.bupt.config;

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

public class MyDispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer 
   /**
     * WebConfig.class相当于xml配置的applicationContext.xml
     * 负责配置spring的ContextLoaderListener
     * @return
     */
    @Override
    protected Class<?>[] getRootConfigClasses() 
        return new Class<?>[]RootConfig.class;
    

 
    /**
     * RootConfig.class相当于xml配置的dispatcher-servlet.xml
     * 负责配置dispatcher-servlet
     * @return
     */
    @Override
    protected Class<?>[] getServletConfigClasses() 
        return new Class<?>[]WebConfig.class;
    

    /**
     * "/"会将所有的请求映射到DiapatcherServlet上,即他是应用默认的Servlet
     * @return
     */
    @Override
    protected String[] getServletMappings() 
        return new String[]"/";
    

 其中WebConfig.class

package com.bupt.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration//声明这是一个配置类
@EnableWebMvc//将request参数与绑定到controller参数上 ,相当于xml配置中的    <mvc:annotation-driven/>
@ComponentScan("com.bupt.controller")//启用组件扫描
public class WebConfig extends WebMvcConfigurerAdapter 
    /**
     * 配置视图解析器
     * @return
     */
    @Bean
    public ViewResolver viewResolver() 
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/views/");
        resolver.setSuffix(".html");
        resolver.setExposeContextBeansAsAttributes(true);
        return resolver;
    

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) 
        //要求DispatcherServlet将对静态资源的请求转发到Servlet容器中默认的Servlet上,
        //而不是使用DispatcherServlet本身来处理此类请求。
        configurer.enable();
    

RootConfig.class

package com.bupt.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@ComponentScan(basePackages = "com.bupt",
        excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class))
public class RootConfig 


删除web.xml

删除applicationContext.xml

删除dispatcher-servlet.xml

重新启动Tomcat服务器,依然可以请求到我们的hello.html

以上是关于java config配置springMVC的主要内容,如果未能解决你的问题,请参考以下文章

使用 Java Config 的全局 CORS 配置在 Spring MVC 中不起作用

java web大题1

springmvc+ueditor上传路径(个人备忘)

农民工看完都会了!java简历包装医疗项目

注解配置SpringMVC

SpringMVC配置文件详解