Java配置Spring MVC

Maven依赖包【部分包不需要】:

	

		
			javax.servlet.jsp.jstl
			jstl-api
			1.2
			
				
					javax.servlet
					servlet-api
				
				
					javax.servlet.jsp
					jsp-api
				
			
		

		
			org.glassfish.web
			jstl-impl
			1.2
			
				
					javax.servlet
					servlet-api
				
				
					javax.servlet.jsp
					jsp-api
				
				
					javax.servlet.jsp.jstl
					jstl-api
				
			
		

		
			javax.servlet
			javax.servlet-api
			3.1.0
			provided
		


		
			javax.servlet.jsp.jstl
			jstl
			1.2
		

		
			org.springframework
			spring-core
			${spring.version}
		
		
			org.springframework
			spring-beans
			${spring.version}
		
		
			org.springframework
			spring-tx
			${spring.version}
		
		
			org.springframework
			spring-web
			${spring.version}
		

		
			org.springframework
			spring-context
			${spring.version}
		
		
			org.springframework
			spring-context-support
			${spring.version}
		
		
			org.springframework
			spring-aop
			${spring.version}
		
		
			org.springframework
			spring-aspects
			${spring.version}
		
		
			commons-logging
			commons-logging
			1.1
		
		
			org.springframework
			spring-webmvc
			${spring.version}
		

		
			junit
			junit
			4.12
		
	

Spring MVC配置文件:

package com.project.springDemo.javaConfig;
/**
 * 配置Spring MVC
 */
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;

@SuppressWarnings("deprecation")
//javaCofig配置
@Configuration
//启动Spring MVC
@EnableWebMvc
//启动组件扫描
@ComponentScan(value = "com.project.springDemo.action")
public class WebConfig extends WebMvcConfigurerAdapter {
	/**
	 * 配置JSP视图解析器
	 * @return视图解析器
	 */
	@Bean
	public ViewResolver viewResolver() {
		InternalResourceViewResolver resolver = new InternalResourceViewResolver();
		resolver.setPrefix("/WEB-INF/views/");
		resolver.setSuffix(".jsp");
		resolver.setExposeContextBeansAsAttributes(true);
		return resolver;
	}
	/**
	 * 配置静态资源处理器
	 */
	@Override
	public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
		configurer.enable();
	}
}

根配置文件:

package com.project.springDemo.javaConfig;

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

@Configuration
@ComponentScan(basePackages = ("com.project.springDemo.javaConfig"), excludeFilters = {
		@Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class) })
public class RootConfig {

}

加载配置类:

package com.project.springDemo.javaConfig;

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

public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
	/**
	 * 根配置定义
	 */
	@Override
	protected Class[] getRootConfigClasses() {
		return new Class[] {RootConfig.class};
	}
	/**
	 *引入Spring MVC的配置文件
	 */
	@Override
	protected Class[] getServletConfigClasses() {
		return new Class[] {WebConfig.class};
	}
	/**
	 * 设置DispatcherServlet的映射路径
	 */
	@Override
	protected String[] getServletMappings() {
		return new String[] {"/"};
	}

}

前提:只能部署到支持Servlet3.0的Servlet容器才能获取

原理:任何AbstractAnnotationConfigDispatcherServletInitializer的任意类都会自动配置DispatcherServlet和Spring上下文。

你可能感兴趣的:(spring)