我是靠谱客的博主 着急早晨,最近开发中收集的这篇文章主要介绍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配置springMVC所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部