基于JavaConfig配置的Spring MVC的构建
上一篇讲了基于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的构建相关推荐
- webconfig.java_基于JavaConfig配置的Spring MVC的构建
上一篇讲了基于XML配置的构建,这一篇讲一讲基于JavaConfig的构建.为什么要写这篇文章,因为基于xml配置的构建,本人认为很麻烦,要写一堆的配置,不够简洁,而基于JavacConfig配置的构 ...
- 基于XML配置的Spring MVC(所需jar包,web.xml配置,处理器配置,视图解析器配置)
1.添加jar 2.web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app ver ...
- 使用Spring MVC 4构建Restful服务
使用Spring MVC 4构建RESTful服务相对于其它框架来说,有很多优势.首先,Spring MVC 4作为Spring的框架之一,可以很好地与Spring进行集成.其次,Spring MVC ...
- spring实战六之使用基于java配置的Spring
之前接触的都是基于XML配置的Spring,Spring3.0开始可以几乎不使用XML而使用纯粹的java代码来配置Spring应用.使用基于java配置的Spring的步骤如下: 1. 创建基于ja ...
- Spring 2.5 基于注解驱动的 Spring MVC
基于注解的配置有越来越流行的趋势,Spring 2.5 顺应这种趋势,为 Spring MVC 提供了完全基于注解的配置.本文将介绍 Spring 2.5 新增的 Sping MVC 注解功能,讲述如 ...
- 使用 Spring 2.5 基于注解驱动的 Spring MVC(二)
我们在 ② 处添加了一个 ModelMap 属性,其属性名为 currUser,而 ① 处通过 @SessionAttributes 注解将 ModelMap 中名为 currUser 的属性放置到 ...
- SSM基于javaconfig配置
1 项目结构(SSM+MAVEN) 1.1 目录结构 1.2 POM文件 由于仓库是nexus私服,如遇见无法加载的包,请无视 <project xmlns="htt ...
- 一步一步深入spring(6)--使用基于XML配置的spring实现的AOP
上节我们提到了使用基于注解实现的AOP,这节我们将用基于xml配置的方式来实现的AOP. 1.首先建立一个类,作为切面类,这个类主要用来实现注解中各种通知要实现的方法. 1 package com.y ...
- Spring MVC 中 HandlerInterceptorAdapter的使用--转载
原文地址:http://blog.csdn.net/liuwenbo0920/article/details/7283757 一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的,这种方式可 ...
最新文章
- 学python能赚什么外卖-python实现外卖信息管理系统
- 【maven插件】maven-help-plugin
- 使用 plsql 时的配置信息(连远程数据库服务器 到 在本机安装 oracle )
- PHP zendframework phpunit 深入
- 掌握java_如何才算掌握Java,大家都掌握到什么程度
- jQuery天猫商品分类导航菜单
- 宗成庆《自然语言理解》第5章作业
- IP地址格式 点分十进制
- 超级计算机更深的蓝,国际象棋发生革命性变化 老棋手深感力不从心
- ubuntu 好用的桌面小工具
- java知识点ppt背景图片,Java 给PowerPoint文档设置背景颜色和背景图片
- 红米4a android 9 速度,小米-红米4A/5A-通刷-LOS-Beta5.0-安卓9.0.0-来去电归属-农历等-本地化增强适配...
- 搜索计算机硬盘的索引恢复,[转载]Chkdsk—磁盘查错修复命令
- 栈内存和堆内存的区别(一个笔试题的一部分)
- Java 核心技术专题
- 苹果xr黑屏转圈圈解决方法_iPhonexr黑屏转圈怎样解决?
- 如何创建 Python 库
- 推荐系统常用的评价指标
- ADC0809模数转换
- 数据科学与大数据技术专业有哪些就业方向?
热门文章
- pde中微元分析法的主要思想_初中数学常用的思想方法丨所有题型的考试技巧最全整理,高分必备...
- html 输入框从左上角,在输入框的左上角,使文本开始_input_开发99编程知识库
- php post请求后端拿不到值_PHP Post获取不到非表单数据的问题解决办法
- 不存在_施文忠 | ”存在“与“不存在”——巴蜀文明概论
- linux nfsnobody用户,处理CentOS 5.5 x64 配置NFS服务过程中nfsnobody用户造成的问题
- c++ socket学习(1.4)
- stl中copy()函数_std :: copy_if()函数以及C ++ STL中的示例
- JavaScript中的String substring()方法和示例
- 线性表------栈
- linux ida 图形界面,linux – IDA在屏幕内不起作用