搭建Spring MVC Web项目----JavaConfig

和 搭建 Spring MVC WEB项目----XML配置 不同的是,这里 将 用Java的 而不是 xml配置文件的方式来搭建Spring MVC 

搭建Spring MVC开发环境 最重要的有三步

       1. 添加Spring MVC 依赖jar包  2. 配置DispacherServlet   3. 配置Spring MVC

1.搭建Spring MVC 环境  都是一样的

先创建 基于Maven 的 WEB 项目,再添加Spring 和 Spring MVC 依赖 以引入jar包

2.配置Spring MVC ---2.1 使用java 配置DispatcherServlcet       

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

public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
  	
	@Override
	protected Class<?>[] getRootConfigClasses() {   //指定配置类
 		return new Class<?>[] {RootConfig.class};
	}
	
	@Override
	protected Class<?>[] getServletConfigClasses() {  // 指定配置类
 		return new Class<?>[] {WebConfig.class};
	}

	@Override
	protected String[] getServletMappings() {  // 将DispatcherServlet映射到 "/"  
		return new String[] { "/" };
	}

}

PS: 以上配置解释  AbstractAnnotationConfigDispatcherServletInitializer剖析                

     扩展AbstractAnnotationConfigDispatcherServletInitializer的任意类 都会自动地配置DispatcherServlet 和 Spring 应用上下文,Spring 应用上下文 会位于 应用程序的Servlet上下文之中。     

        1.配置DispatcherServlet getServletMappings()方法 会将一个或多个路径映射到DispatcherServlet 

         2.当DispatcherServlet启动的时候,它会创建 应用上下文,并加载配置文件或配置类中所声明的bean 。在 Spring Web应用中 有两个应用上下文  (1)DispatcherServlet创建的应用上下文,会加载包含Web组件的bean,如控制器,视图解析器以及处理器映射。 (2)ContextLoaderListener创建的应用上下文 会加载应用中的其他bean,通常是应用后端的中间层和数据层组件。 AbstractAnnotationConfigDispatcherServletInitializer会同时创建DispatcherServlet和ContextLoaderListener

       getServletConfigClasses方法返回的带有@Configuration注解的 类将会用来定义DispatcherServlet应用上下文中的bean。
       getRootConfigClasses()方法返回的带有@Configuration注解的类将会用来 配置ContextLoaderListener创建的应用上下文中的bean。  

2.配置Spring MVC ---2.2 启用Spring MVC 启动包扫描  并简单配置 视图解析器 和 静态资源的处理

      这儿就是 搭建 Spring MVC WEB项目----XML配置的 2.配置Spring MVC  ----2.2 创建Spring MVC 的配置文件

      1.启用组件扫描  @ComponentScan    这个一定要指定基础包,否则会找不到controller

      2.启用Spring MVC 在JavaConfig中,只需要在配置类上使用 @EnableWebMvc注解启用Spring MVC。在xml配置文件中 可以使用<mvc:annotation-driven>  来启用 注解驱动的Spring MVC          

      3.配置视图解析器:它会查找JSP文件,在查找的时候,它会在视图名称上加一个特定的前缀和后缀(例如,名为home的视图将会解析为/WEB-INF/views/home.jsp)

      4. 静态资源的处理 要求DispatcherServlet将对静态资源的请求转发到Servlet容器中默认的Servlet上,而不是使用DispatcherServlet本身来处理此类请求  这个“/WEB-INF/views/” 否则会找不到.jsp文件 会报404

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 // 启用Spring MVC
@ComponentScan("com") // 启用组件扫描
public class WebConfig extends WebMvcConfigurerAdapter {

	@Bean
	public ViewResolver viewResolver() { // 配置 试图解析器
		InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
		viewResolver.setPrefix("/WEB-INF/views/");
		viewResolver.setSuffix(".jsp");
		viewResolver.setExposeContextBeansAsAttributes(true);
		return viewResolver;
	}

	@Override
	public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { //配置静态资源的处理
		configurer.enable();
	}

}

  这个也一定要指定基础包,否则会找不到controller 

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com") //1.启用组件扫描 这个一定要指定基础包,否则会找不到controller
public class RootConfig {
	
}

 

3.  创建Controller 和 View  同搭建 Spring MVC WEB项目----XML配置 

 4 构建项目并部署项目到Tomcat服务器,并启动tomcat 同搭建 Spring MVC WEB项目----XML配置 

posted on 2019-04-17 17:49  dreamstar  阅读(119)  评论(0编辑  收藏  举报