概述
按照传统方式,像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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复