上一篇讲了基于XML配置的构建,这一篇讲一讲基于JavaConfig的构建。为什么要写这篇文章,因为基于xml配置的构建,本人认为很麻烦,要写一堆的配置,不够简洁,而基于JavacConfig配置的构建符合程序员的编码习惯,是SpringMVC以后的趋势。不是说基于XML配置的不好,毕竟现在很多已有的项目都是基于XML的,只是基于JavaConfig配置的更优化,而且两种方式可以鱼和熊掌兼得。但要知道的是,基于JavaConfig配置构建的Spring MVC项目只能部署到支持Servlet 3.0服务器上面。

进入正题,开始搭建项目:

搭建环境:

1. IDEA

2. Maven

3. Tomcat

搭建步骤:

1. 创建maven-archetype-webapp项目,这个项目是maven的web项目

2.在pom中添加sping mvc相关的依赖包,这个依赖包是我自己使用的,包含了单元测试和相关的mvc mock包:

<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.3.9.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/javax.servlet.jsp.jstl-api --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-jpa</artifactId><version>1.10.1.RELEASE</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.8.RELEASE</version><scope>test</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.1</version></dependency><dependency><groupId>org.mockito</groupId><artifactId>mockito-core</artifactId><version>2.8.47</version></dependency></dependencies>

3.将DispatcherSevlet配置在Servlet容器中

public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {/*加载后端的中间层和数据层组件*/@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class<?>[]{RootConfig.class};}/*加载web组件,控制器、试图解析器、处理器映射*/@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class<?>[]{WebConfig.class};}@Overrideprotected String[] getServletMappings() {return new String[]{"/"};}
}

示例代码中要知道的是,任何扩展了AbstractAnnotationConfigDispatcherServletInitializer的类都会自动配置DispatcherServlet和Spring应用上下文。实际上,AbstractAnnotationConfigDispatcherServletInitializer会同时创建DispatcherServlet和ContextLoaderListener。getServletConfigClasses()方法返回的带有@Configuration注解的类会用来定义DispatcherServlet应用上下文中的bean。getRootConfigClasses()方法返回的带有@Configuration注解的类会用来定义ContextLoaderListener应用上下文中的bean。

4.创建WebConfig类

@Configuration
@EnableWebMvc
@ComponentScan("spittr.web")
public class WebConfig extends WebMvcConfigurerAdapter {/*配置视图解析器*/@Beanpublic ViewResolver viewResolver(){InternalResourceViewResolver resolver = new InternalResourceViewResolver();resolver.setPrefix("/WEB-INF/views/");resolver.setSuffix(".jsp");resolver.setExposeContextBeansAsAttributes(true);return  resolver;}/*配置静态资源的处理*/@Overridepublic void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {configurer.enable();}
}

5.创建RootConfig类

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

6,到这里配置已经结束。怎样创建Controller和运行请参考上一篇基于XML配置的Spring MVC。

7.最后附上源码:源码

转载于:https://www.cnblogs.com/cs-js/p/7295414.html

基于JavaConfig配置的Spring MVC的构建相关推荐

  1. webconfig.java_基于JavaConfig配置的Spring MVC的构建

    上一篇讲了基于XML配置的构建,这一篇讲一讲基于JavaConfig的构建.为什么要写这篇文章,因为基于xml配置的构建,本人认为很麻烦,要写一堆的配置,不够简洁,而基于JavacConfig配置的构 ...

  2. 基于XML配置的Spring MVC(所需jar包,web.xml配置,处理器配置,视图解析器配置)

    1.添加jar 2.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app ver ...

  3. 使用Spring MVC 4构建Restful服务

    使用Spring MVC 4构建RESTful服务相对于其它框架来说,有很多优势.首先,Spring MVC 4作为Spring的框架之一,可以很好地与Spring进行集成.其次,Spring MVC ...

  4. spring实战六之使用基于java配置的Spring

    之前接触的都是基于XML配置的Spring,Spring3.0开始可以几乎不使用XML而使用纯粹的java代码来配置Spring应用.使用基于java配置的Spring的步骤如下: 1. 创建基于ja ...

  5. Spring 2.5 基于注解驱动的 Spring MVC

    基于注解的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,为 Spring MVC 提供了完全基于注解的配置.本文将介绍 Spring 2.5 新增的 Sping MVC 注解功能,讲述如 ...

  6. 使用 Spring 2.5 基于注解驱动的 Spring MVC(二)

    我们在 ② 处添加了一个 ModelMap 属性,其属性名为 currUser,而 ① 处通过 @SessionAttributes 注解将 ModelMap 中名为 currUser 的属性放置到 ...

  7. SSM基于javaconfig配置

    1    项目结构(SSM+MAVEN) 1.1    目录结构 1.2    POM文件 由于仓库是nexus私服,如遇见无法加载的包,请无视 <project xmlns="htt ...

  8. 一步一步深入spring(6)--使用基于XML配置的spring实现的AOP

    上节我们提到了使用基于注解实现的AOP,这节我们将用基于xml配置的方式来实现的AOP. 1.首先建立一个类,作为切面类,这个类主要用来实现注解中各种通知要实现的方法. 1 package com.y ...

  9. Spring MVC 中 HandlerInterceptorAdapter的使用--转载

    原文地址:http://blog.csdn.net/liuwenbo0920/article/details/7283757 一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的,这种方式可 ...

最新文章

  1. 学python能赚什么外卖-python实现外卖信息管理系统
  2. 【maven插件】maven-help-plugin
  3. 使用 plsql 时的配置信息(连远程数据库服务器 到 在本机安装 oracle )
  4. PHP zendframework phpunit 深入
  5. 掌握java_如何才算掌握Java,大家都掌握到什么程度
  6. jQuery天猫商品分类导航菜单
  7. 宗成庆《自然语言理解》第5章作业
  8. IP地址格式 点分十进制
  9. 超级计算机更深的蓝,国际象棋发生革命性变化 老棋手深感力不从心
  10. ubuntu 好用的桌面小工具
  11. java知识点ppt背景图片,Java 给PowerPoint文档设置背景颜色和背景图片
  12. 红米4a android 9 速度,小米-红米4A/5A-通刷-LOS-Beta5.0-安卓9.0.0-来去电归属-农历等-本地化增强适配...
  13. 搜索计算机硬盘的索引恢复,[转载]Chkdsk—磁盘查错修复命令
  14. 栈内存和堆内存的区别(一个笔试题的一部分)
  15. Java 核心技术专题
  16. 苹果xr黑屏转圈圈解决方法_iPhonexr黑屏转圈怎样解决?
  17. 如何创建 Python 库
  18. 推荐系统常用的评价指标
  19. ADC0809模数转换
  20. 数据科学与大数据技术专业有哪些就业方向?

热门文章

  1. pde中微元分析法的主要思想_初中数学常用的思想方法丨所有题型的考试技巧最全整理,高分必备...
  2. html 输入框从左上角,在输入框的左上角,使文本开始_input_开发99编程知识库
  3. php post请求后端拿不到值_PHP Post获取不到非表单数据的问题解决办法
  4. 不存在_施文忠 | ”存在“与“不存在”——巴蜀文明概论
  5. linux nfsnobody用户,处理CentOS 5.5 x64 配置NFS服务过程中nfsnobody用户造成的问题
  6. c++ socket学习(1.4)
  7. stl中copy()函数_std :: copy_if()函数以及C ++ STL中的示例
  8. JavaScript中的String substring()方法和示例
  9. 线性表------栈
  10. linux ida 图形界面,linux – IDA在屏幕内不起作用