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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值