ssm框架中spring、springMVC,mybatis spring作用分别什么作用?需要什么配置文件

君,已阅读到文档的结尾了呢~~
SSM三大框架整合详细教程(Spring SpringMVC MyBatis)
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
SSM三大框架整合详细教程(Spring SpringMVC MyBatis)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口java高并发框架 SSM框架 详细整合教程(Spring+SpringMVC+MyBatis)
日期: 17:01:41
来源:ITeye
java高并发框架 SSM框架 详细整合教程(Spring+SpringMVC+MyBatis)
【免费支持更新】A 代码生成器(开发利器);全部是源码
增删改查的处理类,service层,mybatis的xml,SQL( mysql
和oracle)脚本,
jsp页面 都生成
就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池
数据库连接池
阿里巴巴的 druid。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势C 安全权限框架
Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权,更安全,更可靠D ehcache 分布式缓存;
是一个纯Java的进程内缓存框架,具有快速、精干等特点,广泛使用的开源Java分布式缓存。E 微信接口开发(后续会加入Activiti5 工作流 )赠送一个jbpm工作流大型ERP系统(含OA、财务、分销)参考学习F WebSocket 通信技术 即时通讯功能-------------------------------------------------------------------------------------------------------------------------1. 模块化、服务化,流程化,耦合度低、扩展性好,灵活度高,工具类封装完整,干净利索,调用简单方便2. 提供Rest服务,支持APP手机应用(android和ios)接口、php、.net、易语言、VB等第三方接口调用3. 全新高大尚HTML5+css3.0+bootstrap响应式开发界面UI,( 手机 PC 平板 截图在下面)、前沿.
spring restful 风格4. 框架搭建完善成熟,在此基础上做过很多项目,系统具有并发处理、分布式、稳定性。5. 系统功能完善,此为框架平台,文档、注释齐全,提供技术支持,专门供二次开发6. 在此基础上可二次开发(OA、ERP、CRM ,医疗管理、金融、网站后台、APP后台、电子商务、商城(赠送UI)等等7.我们这边是公司,主要业务是定制开发,
此系统为我们平时给客户做项目用的,经过很多项目实战考验
-------------------------------------------------------------------------------------------------------------------------系统模块1. 组织管理:角色管理,分角色组和成员,有组权限和成员权限。2. 系统用户:对各个基本的组会员增删改查,单发、群发邮件短信,导入导出excel表格,批量删除3. 会员管理:对前台用户管理,分配会员级别,到期时间,状态,联系信息等资料4. 菜单管理:增删改查菜单 ztree(自定义菜单)业务菜单和系统菜单分离5. 数据字典:无限级别,支持多级别无限分类。内设编号,排序等6. 系统设置:修改系统名称,邮件服务器配置,短信账号设置,图片水印配置,微信配置7. 代码生成:打开代码生成器模块
8. 图库管理:对批量上传的图片统一管理 9. 性能监控:监控整个系统的性能,SQL监控,SQL防火墙,URL监控,SPRING监控,SESSION监控等10. 接口测试:POST or GET 方式检测系统接口,参数加密,json返回结果,计算服务器响应时间11. 发送邮件:单发,群发邮件
12. 置二维码:生成 or
解析二维码
13.地图工具:经纬度操作14.即时通讯:打开即时聊天窗口15.在线管理:(统计在线人数和在线列表,可强制某用户下线),同一用户只能在一个客户端登录16.打印测试:页面打印预览测试-------------------------------------------------------------------------------------------------------------------------菜单权限:分配给每个角色不同的菜单权限, 每个角色看到的菜单不同按钮权限:独立分配不同的角色不同的功能权限,增删改查权限分配具体到不同的菜单支持多用户分权限管理后台,
权限具体到不同的菜单不同的按钮--------------------------------------------------------------------------------------------------------------信息模块(小项目代码中)新闻管理:新闻的维护、发布、权重排序等 采用百度ueditor富文本框公告管理:公告的维护、发布广告管理:广告的维护、发布,状态维护,上传广告图片友情链接:友情链接的维护、状态维护特别推荐:特别推荐、状态维护微信模块关注回复:微信用户关注公众号回复文本回复:匹配关键词进行文本回复图文回复:匹配关键词进行图文回复应用命令:匹配关键词进行命令操作,例如微信发送命令,执行服务器重启、关机、锁定等操作-------------------------------------------------------------------------------------------------------------------------技术点1. 导出 导入 excel 文件2
导出word文件3. IO 流上传下载文件4. 群发邮件,可以发html、纯文本格式,可以发给任意邮箱(实现批量发送广告邮件)5. 群发or单独 发送短信,支持两种第三方短信商接口6. spring
事物处理7. 代码生成器 (freemarker), 代码 zip 压缩打包8. MD5加密 SHA加密(登录密码用此加密)接口加密身份校验9. 数据库连接池
阿里的 druid。Druid在监控、可扩展性、稳定性和性能方面都有明显的优势,支持并发10.加入安全框架 shiro (登录授权)(session管理)11.根据汉字 解析汉字的全拼(拼音)和首字母(导入excel到用户表,根据用户的汉字姓名生成拼音的用户名)12.app接口@ResponseBody(支持与其它语言数据交互)13.极光推送 (推送给APP及时消息,APP不启动也能收到)14.微信接口(身份验证,文本、图文回复等) 微信远程控制服务器重启、锁定、其它应用程序15.java Quartz 定时器 (定时执行某程序,精确到秒,可设置周期)16.java websocket 即时通讯技术,点对点,群聊,单聊,EXT4对话框17.新增Lucene全文检索18.Base64传输图片19.图片加水印(图片水印,文字水印)20.生成 or
解析 二维码21.HTML5 + JAVAEE
WebSocket 通信技术,WebSocket 验证用户登录,强制某用户下线22.批量异步上传图片,可预览,有进度条,支持拖拽上传(百度webuploader )。列表动态滑动放大展示。23.ehcache 自定义二级缓存 ,选择缓存存放目录,处理并发,增加系统性能24.服务器内部GET POST 请求25.uploadify 上传插件,单条、批量上传多线程,带进度条,异步,图片、视频, 其它文件格式均可上传26.地图选点获取经纬度坐标,根据俩经纬度计算距离27.tab标签页面功能,标签自由切换,不重复操作数据库-------------------------------------------------------------------------------------------------------------------------系统框架为:springmvc + mybaits 3.2 有 maven 版本和 非maven 版本 jdk 1.6 1.7 1.8
tomcat 6 7 8数据库:oracle 版本 和 msyql 版本 ( spring3.0 和4.02
mybaits 3.2)
开发工具:myeclipse
eclipse 均可赠送 同UI
springmvc + hibernate
SpringSecurity Lucene Quartz MySQL、Oracle、SQL Server赠送 同UI
maven 分模块项目 springmvc + mybatis-------------------------------------------------------------------------------------------------------------------------系统演示视频:链接:
密码: t987 之前录的(有点粗糙, 凑合着看)qq: --------------------------------------------------------------------------------------------------------------------PC实物截图如下登录界面背景用HTML5特效自动切换(百叶窗,幕布等多种切换方式)
本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
在Java中注解随处可见,学习Java注解,知道其原理,可以读懂很多开源框架,如Spring,Mybatis等,还可以自定义注解实现更高级的功能。
一、常见的Java注解
Jdk自带的注解:@Override,@SuppressWarnings,@Deprecated(方法过时)
第三方框架注解:Spring,Mybatis等
二、注解的分类 1.按运行机制分
源码存在,class文件不存在
编译时注解
源码,class文件存在
运行时注解
spring @ant
背景: 今天介绍两个jar的命令工具,对我个人来说,还是比较好用的。 主要针对的就是:在本地改动了一两个文件,想要马上去开发环境测试一下,但是是如果整个项目打包再上传再部署就显得效率很低下。毕竟我就改了一个配置文件,或者只改了一个class文件。 如果只替换这一两个文件不是很高效么。 方案: 命令一: jar tvf -bash-4.1$ jar tvf fcm-core-dev-1.1-SNAPSHOT.jar META-INF/dev.properties 841 Wed Jan 20 16:04:5
在做项目中经常会用到地区的树形结构,而在数据库中我们一般存储的是一个地区ID,该地区对应的父节点ID,地区名称。下面仅以安徽省为例展示地区表结构:省 - 市 - 县 areaId
areaName 136 13 淮南市 135 13 蚌埠市 143 13 阜阳市 139 13 铜陵市 149 13 宣城市 133 13 合肥市 147 13 亳州市 138 13 淮北市 142 13 滁州市
。。。。。。
856 135 怀远县 857 135 五河县 858 135 固镇县
一般,我们用反射是可以在运行时洞悉一个类的信息(无论公私有),但是我们也可以在运行时创建一个新的类(原先不存在),然后加载该类,并调用该类中的函数。
1.创建一个类 这里我简便的用IO流将一个已经完成的类(与当前工程不再一个目录下),拷贝到当前工程目录下,当然也可以在运行时直接用字符串拼接处一个类,写入文件。
@SuppressWarnings("resource")public static void copyClass() throws IOException{File file = ne
线性表逆序链表使用Java实现,实现思路和C语言中的实现思路一模一样,不赘述;和顺序链表不同的是,逆序链表不需要“尾指针”,这样就少了tail节点的定义;另外逆序链表中的head节点不能存储数据,它用来引导每个节点的插入位置。 一、代码实现 import java.util.Sclass Node{ Node next=}public class ReverseLinkedList{ public static void main(String a
使用二叉排序树查找效率也非常高,当然有更稳定的二叉平衡树,但是实现起来比较困难,所以这里只实现了二叉排序树;二叉排序树的特点如下: 左子树中的所有节点值都小于父节点值 右子树中的所有节点值都大于父节点值 所有节点不允许出现重复,否则会破坏二叉排序树的数据结构 二叉排序树的中序遍历的结果就是所有元素的排序结果 二叉排序树是二叉树 所以,使用二叉排序树不仅仅能够实现快速查找,而且也能够实现排序。 一、使用二叉排序树实现排序(非递归建树) package com.kdyzm.bitsorttree
基于注解的事务管理器配置(AOP) 首先要引入AOP和TX的名称控件 !-- 使用annotation定义事务 --tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" / !-- Spring Data Jpa 事务配置 --bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionMan
/topic/1143083 java中如果需要返回多个值怎么办?首先我们明确一下:java方法的返回值只有一个,但是返回值的类型不限 (1)把这多个返回值再封装成为对象 可以封装成为java bean,数组,ArrayList ,甚至Map 下面看一个实际案例
简单说明一下: 这个方法是发送http 请求,返回的内容有四项:请求的结果,sessionId,response code,contentType 我是如何做的呢? 把这四项放到了一个Object数组中
BFS,中文名为宽度优先搜索遍历,是横向遍历图的一种算法;这种算法必须借助队列才能够实现。 需求: 输入edgeCount,startNode,edgeCount代表图有多少条边,startNode代表遍历的起点,接下来输入edgeCount组数据,每组有两个数node1与node2,代表一条边;最后输出BFS算法得到的序列,数和数之间使用空格隔开。 一、实现代码 import java.util.Simport java.util.Qimport java.util.Linked
二分查找的核心思想就是根据有序数组的中间值判断目标所在的区间,每比较一次目标所在的范围都会缩小一半,当目标值和中间值相等的时候就找到了该目标值对应的数组下标,查找成功;当lowheigh的时候,就表明没有找到对应的元素,查找失败。 一、递归方式的二分查找 import java.util.Spublic class BitSearch{ public static void main(String args[]){ Scanner scanner=new Scanner(System.in)
Copyright (C)
ITfish.net【SSM架构】Shiro+Spring MVC+MyBatis框架项目班
- 魔乐科技【云学习】 - 用技术改变命运,JAVA\JAVAWEB\ANDROID\在线学习平台 - Powered By EduSoho
本专业含6门课程 原价2700元
现特价报名1999元并配套教材
本套课程一共有四个组成部分:《Spring开发框架》、《MyBatis开发框架》、《Shiro开发框架》、《SSM综合项目——预约系统》,同时本课程讲解中采用了“Eclipse + Maven”的流行组合模式。具体的课程介绍如下。
SSM即将成为现在以及以后的WEB开发新模式,并且将长期存在于我们的开发领域之中。
SSM框架简介
SSM指的是三个框架的简写,分别为:Spring、Shiro、MyBatis。
注:最初的SSM开发框架整合有另外的版本“Spring + Spring MVC + MyBatis”,这样的组合非常的牵强(毕竟Spring MVC属于Spring框架中的子模块),而Shiro的出现真正补足了一个“S”的名号,所以现在的SSM组合已经变为“Spring + Shiro + MyBatis”
1、Spring开发框架
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaEEfull-stack(一站式)轻量级开源框架。
2、Shiro开发框架
Shiro开发框架 Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能,同时还可以轻松的与各种开发框架整合,提供JSP页面、控制层、业务层的多重权限与授权验证处理。
3、MyBatis框架
MyBatis 本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github作为开源项目推广。
4、框架整合课程
在SSM的开发架构之中,每一个框架的核心作用如下:
· MyBatis开发框架:实现ORMapping开发框架,只提供有数据库的SQL定义与实现,而在与Spring整合之后,开发者针对于数据接口不再需要编写具体的实现子类,完全会由Spring根据映射文件与接口动态生成实现子类,简化了代码的重复编写。
· Spring开发框架:提供有强大的依赖注入功能, 可以轻松的整合各种资源对象,并且利用配置文件以及Annotation轻松的实现Bean之间依赖关系的匹配,避免了关键字new所带来的系统耦合问题。同时利用其AOP的特点轻松的实现了事务的逻辑控制,用户只需要编写核心代码即可。
· Shiro开发框架:提供有完整用户认证与角色检测操作,可以基于Spring开发框架实现业务层或控制层的Annotation检测,同时提供有强大的第三方认证框架(例如:CAS)的整合能力。
SSM开发架构整体架构如下:
SSM开发架构的特点:
· 后端开发者只负责编写核心的业务开发,所有辅助性的支持全部交由Spring负责;
· 后端开发者不再需要去关注数据库的连接、关闭、事务等控制处理
· 控制层开发者只需要按照既定的接口以及相关的业务描述利用注解实现业务对象的注入;
· 前端、控制层、后端开发都可以利用Shiro与注解的模式轻松的实现用户检测与权限检测的控制;
· 极大的减少了所有重复代码的编写,代码维护更加容易;
· 利用Spring可以整合更多的开发框架,实现开发架构的动态扩充。
您尚未成为魔乐在线培训班成员,请先成为魔乐在线培训班成员。
工作时间:9:00 - 20:00
魔乐老师:400-SSM框架(Spring+Spring&MVC+Mybatis)使用MyBatis&generator自动生成代码
这两天需要用到MyBatis的代码自动生成的功能,由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件。这样可以省去很多的功夫,将生成的代码copy到项目工程中即可。
&使用自动生成有很多方式,可以在eclipse中安装插件,但是以下将要介绍的这种方式我认为很轻松,最简单,不需要装插件,只需要下几个jar包即可,把它们放在一个目录下面。
&生成代码需要的文件和jar包:
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/13734?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhzaHVsaW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT="" WIDTH="740" HEIGHT="182"
TITLE="SSM框架(Spring+Spring&MVC+Mybatis)使用MyBatis&generator自动生成代码" />下载地址:/s/1qY4LvR2
当以上这些完成之后,只需要打开控制台,进入lib目录下,执行脚本:
&-jar&mybatis-generator-core-1.3.2.jar&-configfile&generatorConfig.xml&-overwrite
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://img.blog.csdn.net/22578?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemhzaHVsaW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" ALT=""
TITLE="SSM框架(Spring+Spring&MVC+Mybatis)使用MyBatis&generator自动生成代码" />
这样在生成之后,就可以在src目录下找到相应的文件夹,每个表格都会对应三个文件(实体类、接口、配置文件)。
注意:此处的generatorConfig.xml
只持ANSI编码,换成utf-8会报错。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Spring、Spring MVC、MyBatis整合文件配置详解 - ImportNew
| 标签: , ,
使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了。先总结一下SSM整合的文件配置。其实具体的用法最好还是看官方文档。
基本的组织结构和用法就不说了,前面的博客和官方文档上都非常的全面。jar包可以使用Maven来组织管理。来看配置文件。
web.xml的配置
web.xml应该是整个项目最重要的配置文件了,不过servlet3.0中已经支持注解配置方式了。在servlet3.0以前每个servlet必须要在web.xml中配置servlet及其映射关系。但是在spring框架中就不用了,因为Spring中是依赖注入(Dependency Injection)的也叫控制反转(Inversion of Control)。但是也要配置一个重要的servlet,就是前端控制器(DispatcherServlet)。配置方式与普通的servlet基本相似。
配置内容如下:
&!-- 配置前端控制器 --&
&servlet-name&spring&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&!-- ContextconfigLocation配置springmvc加载的配置文件
适配器、处理映射器等
&param-name&contextConfigLocation&/param-name&
&param-value&WEB-INF/classes/spring/springmvc.xml&/param-value&
&/init-param&
&/servlet&
&servlet-mapping&
&servlet-name&spring&/servlet-name&
&!-- 1、.action访问以.action结尾的
由DispatcherServlet进行解析
2、/,所有访问都由DispatcherServlet进行解析
&url-pattern&/&/url-pattern&
&/servlet-mapping&
这里需要注意,springmvc.xml是spring配置文件,将在后面讨论。在&servlet-mapping&中url如果是.action,前端控制器就只会拦截以.action结尾的请求,并不会理会静态的文件。对静态页面的控制就要通过其他的手段。以/作为url的话就会拦截所有的请求,包括静态页面的请求。这样的话就可以拦截任何想要处理的请求,但是有一个问题。如果拦截了所有的请求,如果不在拦截器中做出相应的处理那么所有静态的js、css以及页面中用到的图片就会访问不到造成页面无法正常显示。但这可以通过静态资源的配置来解决这个问题。后面会提到。
配置spring容器:
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&WEB-INF/classes/spring/applicationContext-*.xml&/param-value&
&/context-param&
其中applicationContext-*.xml包含3个配置文件,是springIoC容器的具体配置。后面会提到。
配置一个监听器:
&listener&
&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&
&/listener&
web.xml的完整配置是这样的:
&?xml version=&1.0& encoding=&UTF-8&?&
&web-app version=&3.0&
xmlns=&/xml/ns/javaee&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xsi:schemaLocation=&/xml/ns/javaee
/xml/ns/javaee/web-app_3_0.xsd&&
&display-name&&/display-name&
&!-- 404错误拦截 --&
&error-page&
&error-code&404&/error-code&
&location&/error404.jsp&/location&
&/error-page&
&!-- 500错误拦截 --&
&error-page&
&error-code&500&/error-code&
&location&/error500.jsp&/location&
&/error-page&
&!-- 加载spring容器 --&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&WEB-INF/classes/spring/applicationContext-*.xml&/param-value&
&/context-param&
&listener&
&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&
&/listener&
&!-- 配置前端控制器 --&
&servlet-name&spring&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&!-- ContextconfigLocation配置springmvc加载的配置文件
适配器、处理映射器等
&param-name&contextConfigLocation&/param-name&
&param-value&WEB-INF/classes/spring/springmvc.xml&/param-value&
&/init-param&
&/servlet&
&servlet-mapping&
&servlet-name&spring&/servlet-name&
&!-- 1、.action访问以.action结尾的
由DispatcherServlet进行解析
2、/,所有访问都由DispatcherServlet进行解析
&url-pattern&/&/url-pattern&
&/servlet-mapping&
&!-- 解决post乱码问题的过滤器 --&
&filter-name&CharacterEncodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&utf-8&/param-value&
&/init-param&
&filter-mapping&
&filter-name&CharacterEncodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&welcome-file-list&
&welcome-file&welcome.jsp&/welcome-file&
&/welcome-file-list&
&/web-app&
看到配置文件中多了两块内容,一个是error page是用来友好的处理错误的,可以使用错误代码来区别并跳转到相应的处理页面。这段配置代码最好放到最前面,在前端控制器拦截之前处理。
还有一块内容是一个解决post乱码问题的过滤器,拦截post请求并编码为utf8。
springmvc.xml的配置
视图解析器的配置:
&!-- 配置视图解析器 --&
&bean class=&org.springframework.web.servlet.view.InternalResourceViewResolver&&
&!-- 使用前缀和后缀 --&
&property name=&prefix& value=&/&&&/property&
&property name=&suffix& value=&.jsp&&&/property&
在Controller中设置视图名的时候会自动加上前缀和后缀。
Controller的配置
自动扫描方式,扫描包下面所有的Controller,可以使用注解来指定访问路径。
&!-- 使用组件扫描的方式可以一次扫描多个Controller --&
&context:component-scan base-package=&com.wxisme.ssm.controller&&
也可以使用单个的配置方式,需要指定Controller的全限定名。
&bean name=&/queryUser.action& class=&com.wxisme.ssm.controller.Controller1&/&
配置注解的处理器适配器和处理器映射器:
&!-- 注解的处理器适配器 --&
&bean class=&org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter&/&
&!-- 注解的处理器映射器 --&
&bean class=&org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping&/&
也可以使用下面的简化配置:
&!-- 配置注解的处理器映射器和处理器适配器 --&
&mvc:annotation-driven conversion-service=&conversionService&&&/mvc:annotation-driven&
配置拦截器,可以直接定义拦截所有请求,也可以自定义拦截路径。
&mvc:interceptors&
&!-- 直接定义拦截所有请求 --&
&bean class=&com.wxisme.ssm.interceptor.IdentityInterceptor&&&/bean&
&!-- &mvc:interceptor&
拦截所有路径的请求
包括子路径
&mvc:mapping path=&/**&/&
&bean class=&com.wxisme.ssm.interceptor.IdentityInterceptor&&&/bean&
&/mvc:interceptor& --&
&/mvc:interceptors&
配置全局异常处理器
&!-- 定义全局异常处理器 --&
&!-- 只有一个全局异常处理器起作用 --&
&bean id=&exceptionResolver& class=&com.wxisme.ssm.exception.OverallExceptionResolver&&&/bean&
配置文件上传数据解析器,在上传文件时需要配置。
&!--配置上传文件数据解析器
&bean id=&multipartResolver& class=&org.springframework.monsMultipartResolver&&
&property name=&maxUploadSize&&
&value&9242880&/value&
&/property&
还可以配置一些自定义的参数类型,以日期类型绑定为例。
&!-- 自定义参数类型绑定 --&
&bean id=&conversionService& class=&org.springframework.format.support.FormattingConversionServiceFactoryBean&&
&property name=&converters&&
&!-- 日期类型绑定 --&
&bean class=&com.wxisme.ssm.controller.converter.DateConverter&/&
&/property&
上面提到过如果在配置前端控制器时拦截了所有的请求,不做特殊处理就会导致部分静态资源无法使用。如果是这种情况就可以使用下面的配置来访问静态资源文件。
&mvc:resources mapping=&/images/**& location=&/images/& /&
&mvc:resources mapping=&/css/**& location=&/css/& /&
&mvc:resources mapping=&/js/**& location=&/js/& /&
&mvc:resources mapping=&/imgdata/**& location=&/imgdata/& /&
也可以使用默认,但是需要在web.xml中配置。
&!-- 访问静态资源文件 --&
&!-- &mvc:default-servlet-handler/& 需要在web.xml中配置--&
完全可以不拦截所有路径,大可避免这个问题的发生。
完整的配置大概是这样的,需要注意xml文件的命名空间,有时候会有影响的。
&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xmlns:context=&http://www.springframework.org/schema/context&
xmlns:mvc=&http://www.springframework.org/schema/mvc&
xmlns:jdbc=&http://www.springframework.org/schema/jdbc&
xmlns:jee=&http://www.springframework.org/schema/jee&
xmlns:aop=&http://www.springframework.org/schema/aop&
xmlns:tx=&http://www.springframework.org/schema/tx&
xsi:schemaLocation=&http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd&&
&!-- 配置视图解析器 --&
&bean class=&org.springframework.web.servlet.view.InternalResourceViewResolver&&
&!-- 使用前缀和后缀 --&
&property name=&prefix& value=&/&&&/property&
&property name=&suffix& value=&.jsp&&&/property&
&!-- 使用组件扫描的方式可以一次扫描多个Controller --&
&context:component-scan base-package=&com.wxisme.ssm.controller&&
&/context:component-scan&
&!-- 配置注解的处理器映射器和处理器适配器 --&
&mvc:annotation-driven conversion-service=&conversionService&&&/mvc:annotation-driven&
&!-- 自定义参数类型绑定 --&
&bean id=&conversionService& class=&org.springframework.format.support.FormattingConversionServiceFactoryBean&&
&property name=&converters&&
&!-- 日期类型绑定 --&
&bean class=&com.wxisme.ssm.controller.converter.DateConverter&/&
&/property&
&!-- 访问静态资源文件 --&
&!-- &mvc:default-servlet-handler/& 需要在web.xml中配置--&
&mvc:resources mapping=&/images/**& location=&/images/& /&
&mvc:resources mapping=&/css/**& location=&/css/& /&
&mvc:resources mapping=&/js/**& location=&/js/& /&
&mvc:resources mapping=&/imgdata/**& location=&/imgdata/& /&
&!-- 定义拦截器 --&
&mvc:interceptors&
&!-- 直接定义拦截所有请求 --&
&bean class=&com.wxisme.ssm.interceptor.IdentityInterceptor&&&/bean&
&!-- &mvc:interceptor&
拦截所有路径的请求
包括子路径
&mvc:mapping path=&/**&/&
&bean class=&com.wxisme.ssm.interceptor.IdentityInterceptor&&&/bean&
&/mvc:interceptor& --&
&/mvc:interceptors&
&!--配置上传文件数据解析器
&bean id=&multipartResolver& class=&org.springframework.monsMultipartResolver&&
&property name=&maxUploadSize&&
&value&9242880&/value&
&/property&
&!-- 定义全局异常处理器 --&
&!-- 只有一个全局异常处理器起作用 --&
&bean id=&exceptionResolver& class=&com.wxisme.ssm.exception.OverallExceptionResolver&&&/bean&
applicationContext-*.xml的配置
applicationContext-*.xml包括三个配置文件,分别对应数据层控制、业务逻辑service控制和事务的控制。
数据访问层的控制,applicationContext-dao.xml的配置:
配置加载数据连接资源文件的配置,把数据库连接数据抽取到一个properties资源文件中方便管理。
&!-- 加载数据库连接的资源文件 --&
&context:property-placeholder location=&/WEB-INF/classes/jdbc.properties&/&
其中jdbc.properties文件的内容如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database
jdbc.username=root
jdbc.password=1234
配置数据库连接池,这里使用的是dbcp,别忘了添加jar包!
&!-- 配置数据源
dbcp数据库连接池 --&
&bean id=&dataSource& class=&mons.dbcp2.BasicDataSource& destroy-method=&close&&
&property name=&driverClassName& value=&${jdbc.driver}&/&
&property name=&url& value=&${jdbc.url}&/&
&property name=&username& value=&${jdbc.username}&/&
&property name=&password& value=&${jdbc.password}&/&
Spring和MyBatis整合配置,jar包由MyBatis提供。
配置sqlSessionFactory
&!-- 配置sqlSessionFactory --&
&bean id=&sqlSessionFactory& class=&org.mybatis.spring.SqlSessionFactoryBean&&
&!-- 数据库连接池 --&
&property name=&dataSource& ref=&dataSource&/&
&!-- 加载Mybatis全局配置文件 --&
&property name=&configLocation& value=&/WEB-INF/classes/mybatis/SqlMapConfig.xml&/&
SqlMapConfig.xml文件是MyBatis的配置文件,后面会提到。
配置Mapper扫描器,扫描mapper包下的所有mapper文件和类,要求mapper配置文件和类名需要一致。
&!-- 配置mapper扫描器 --&
&bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
&!-- 扫描包路径,如果需要扫描多个包中间用半角逗号隔开 --&
&property name=&basePackage& value=&com.wxisme.ssm.mapper&&&/property&
&property name=&sqlSessionFactoryBeanName& value=&sqlSessionFactory&/&
整个applicationContext-dao.xml配置文件应该是这样的:
&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xmlns:context=&http://www.springframework.org/schema/context&
xmlns:mvc=&http://www.springframework.org/schema/mvc&
xmlns:jdbc=&http://www.springframework.org/schema/jdbc&
xmlns:jee=&http://www.springframework.org/schema/jee&
xmlns:aop=&http://www.springframework.org/schema/aop&
xmlns:tx=&http://www.springframework.org/schema/tx&
xsi:schemaLocation=&http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd&&
&!-- 加载数据库连接的资源文件 --&
&context:property-placeholder location=&/WEB-INF/classes/jdbc.properties&/&
&!-- 配置数据源
dbcp数据库连接池 --&
&bean id=&dataSource& class=&mons.dbcp2.BasicDataSource& destroy-method=&close&&
&property name=&driverClassName& value=&${jdbc.driver}&/&
&property name=&url& value=&${jdbc.url}&/&
&property name=&username& value=&${jdbc.username}&/&
&property name=&password& value=&${jdbc.password}&/&
&!-- 配置sqlSessionFactory --&
&bean id=&sqlSessionFactory& class=&org.mybatis.spring.SqlSessionFactoryBean&&
&!-- 数据库连接池 --&
&property name=&dataSource& ref=&dataSource&/&
&!-- 加载Mybatis全局配置文件 --&
&property name=&configLocation& value=&/WEB-INF/classes/mybatis/SqlMapConfig.xml&/&
&!-- 配置mapper扫描器 --&
&bean class=&org.mybatis.spring.mapper.MapperScannerConfigurer&&
&!-- 扫描包路径,如果需要扫描多个包中间用半角逗号隔开 --&
&property name=&basePackage& value=&com.wxisme.ssm.mapper&&&/property&
&property name=&sqlSessionFactoryBeanName& value=&sqlSessionFactory&/&
业务逻辑控制,applicationContext-service.xml的配置:
这个文件里暂时只需要定义service的实现类即可。
&!-- 定义service --&
&bean id=&userService& class=&com.wxisme.ssm.service.impl.UserServiceImpl&/&
事务控制,applicationContext-transaction.xml的配置
配置数据源,使用JDBC控制类。
&bean id=&transactionManager& class=&org.springframework.jdbc.datasource.DataSourceTransactionManager&&
&!-- 配置数据源 --&
&property name=&dataSource& ref=&dataSource&/&
配置通知,事务控制。
&!-- 通知 --&
&tx:advice id=&txAdvice& transaction-manager=&transactionManager&&
&tx:attributes&
&!-- 传播行为 --&
&tx:method name=&save*& propagation=&REQUIRED&/&
&tx:method name=&insert*& propagation=&REQUIRED&/&
&tx:method name=&update*& propagation=&REQUIRED&/&
&tx:method name=&delete*& propagation=&REQUIRED&/&
&tx:method name=&find*& propagation=&SUPPORTS& read-only=&true&/&
&tx:method name=&select*& propagation=&SUPPORTS& read-only=&true&/&
&/tx:attributes&
&/tx:advice&
配置AOP切面
&!-- 配置aop
&aop:config&
&aop:advisor advice-ref=&txAdvice& pointcut=&execution(* com.wxisme.ssm.service.impl.*.*(..))&/&
&/aop:config&
整个事务控制的配置是这样的:
&?xml version=&1.0& encoding=&UTF-8&?&
&beans xmlns=&http://www.springframework.org/schema/beans&
xmlns:xsi=&http://www.w3.org/2001/XMLSchema-instance&
xmlns:context=&http://www.springframework.org/schema/context&
xmlns:mvc=&http://www.springframework.org/schema/mvc&
xmlns:jdbc=&http://www.springframework.org/schema/jdbc&
xmlns:jee=&http://www.springframework.org/schema/jee&
xmlns:aop=&http://www.springframework.org/schema/aop&
xmlns:tx=&http://www.springframework.org/schema/tx&
xsi:schemaLocation=&http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd&&
&!-- 事务控制
对MyBatis操作数据库
spring使用JDBC事务控制类 --&
&bean id=&transactionManager& class=&org.springframework.jdbc.datasource.DataSourceTransactionManager&&
&!-- 配置数据源 --&
&property name=&dataSource& ref=&dataSource&/&
&!-- 通知 --&
&tx:advice id=&txAdvice& transaction-manager=&transactionManager&&
&tx:attributes&
&!-- 传播行为 --&
&tx:method name=&save*& propagation=&REQUIRED&/&
&tx:method name=&insert*& propagation=&REQUIRED&/&
&tx:method name=&update*& propagation=&REQUIRED&/&
&tx:method name=&delete*& propagation=&REQUIRED&/&
&tx:method name=&find*& propagation=&SUPPORTS& read-only=&true&/&
&tx:method name=&select*& propagation=&SUPPORTS& read-only=&true&/&
&/tx:attributes&
&/tx:advice&
&!-- 配置aop
&aop:config&
&aop:advisor advice-ref=&txAdvice& pointcut=&execution(* com.wxisme.ssm.service.impl.*.*(..))&/&
&/aop:config&
MyBatis的配置
SqlMapConfig.xml的配置
全局setting配置这里省略,数据库连接池在spring整合文件中已经配置,具体setting配置参考官方文档。
别名的定义:
&typeAliases&
&!-- 批量定义别名 ,指定包名,自动扫描包中的类,别名即为类名,首字母大小写无所谓--&
&package name=&com.wxisme.ssm.po&/&
&/typeAliases&
mapper映射文件的配置:
&!-- 加载映射文件 --&
&!-- 这里也可以使用class来加载映射文件,前提是:使用mapper代理的方法,遵循规范,
并且两个文件必须同名且在同一目录
&mapper class=&com.wxisme.mybatis0100.mapper.UserMapper&/&
基于class加载,可以进行批量加载
&!-- 通过扫描包的方式来进行批量加载映射文件 --&
&package name=&com.wxisme.ssm.mapper&/&
&/mappers&
整个文件的配置应该是这样的:
&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE configuration
PUBLIC &-//mybatis.org//DTD Config 3.0//EN&
&http://mybatis.org/dtd/mybatis-3-config.dtd&&
&configuration&
&!-- 将数据库连接数据抽取到属性文件中方便测试 --&
&!-- &properties resource=&/WEB-INF/classes/jdbc.properties&&&/properties& --&
&!-- 别名的定义 --&
&typeAliases&
&!-- 批量定义别名 ,指定包名,自动扫描包中的类,别名即为类名,首字母大小写无所谓--&
&package name=&com.wxisme.ssm.po&/&
&/typeAliases&
&!-- 数据库连接用数据库连接池 --&
&!-- 通过扫描包的方式来进行批量加载映射文件 --&
&package name=&com.wxisme.ssm.mapper&/&
&/mappers&
&/configuration&
具体mapper文件的配置,在使用mapper代理的方法时,命名空间需要是对应的Mapper类。
&?xml version=&1.0& encoding=&UTF-8& ?&
&!DOCTYPE mapper PUBLIC &-//mybatis.org//DTD Mapper 3.0//EN& &http://mybatis.org/dtd/mybatis-3-mapper.dtd& &
&mapper namespace=&com.wxisme.ssm.mapper.AlbumMapper& &
以上只是对SSM框架简单使用时的配置文件,如果需要深入使用或者需要理解其内部机理需要参考官方文档和其源代码。
Hi,请到伯乐在线的小组发帖提问,支持微信登录。链接是: http://group.jobbole....
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:@
广告与商务合作QQ:
&#8211; 好的话题、有启发的回复、值得信赖的圈子
&#8211; 写了文章?看干货?去头条!
&#8211; 为IT单身男女服务的征婚传播平台
&#8211; 优秀的工具资源导航
&#8211; 活跃 &#038; 专业的翻译小组
&#8211; 国内外的精选博客文章
&#8211; UI,网页,交互和用户体验
&#8211; JavaScript, HTML5, CSS
&#8211; 专注Android技术分享
&#8211; 专注iOS技术分享
&#8211; 专注Java技术分享
&#8211; 专注Python技术分享
& 2017 ImportNew}

我要回帖

更多关于 spring mybatis框架 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信