送你一套纯净版的 SSM 架构
大致介绍一下,目前 Java 中使用比较多的框架组合就是 Spring 、Springmvc 、Mybatis ,这 3 个框架也就是我们常说的 SSM。
前面陆陆续续也已经介绍完了这 3 个框架,今天就来整合一下它们几个。以后就可以直接拿来用了,多好,不用吭哧吭哧的搭框架了。
首先,搭框架要有个顺序,从底层开始搞起,先处理持久层,一层一层的来才不会出现遗漏的现象。
首先整合 Mybatis 和 Spring。 这 3 大框架都有一个核心配置文件,我们搭建环境环境主要就是在配置文件里面配置一下。
我们知道在 Mybatis 中,核心的对象是 SqlSessionFactory, 而一旦与 Spring 整合,就要发挥 Spring 对象管家的角色,这些核心对象都会交给 Spring 来进行管理。
得到这些对象,首先我们需要与数据库进行连接,自然就需要数据库连接池和连接数据库的 properties 文件。
<!-- 加载数据库配置文件 -->
<context:property-placeholder location="classpath:db.properties"/> <!-- 配置连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.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}" />
<property name="maxActive" value="10" />
<property name="maxIdle" value="5" />
</bean>
SqlSessionFactory 在操作数据库的时候还可能会有一些特性化的操作,比方说,配置 POJO 的别名。所以 SqlSessionFactory 的生成还依赖与 Mybatis 的核心配置文件 sqlMapConfig.xml 文件。
<!-- 配置 SqlSessionFactory 对象 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:sqlMapConfig.xml"/>
</bean>
Mybatis 还有一大特性就是 Mapper 动态接口开发,生成的这些接口的实现类肯定还是要交给 Spring 来管理的。
<!-- mapper 动态代理 配置扫描路径 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.yu.dao"/>
</bean>
以上这些即可达到 Spring 中整合 Mybatis 的效果,其实主旨就是将 Mybatis 中的核心对象 SqlSessionFactory 和需要在 Service 层用到 DAO 层接口的实现类交由 Spring 管理。
当然,在 Spring 的核心配置文件 applicationContext.xml 中我们还可以配置事务的操作。
<!-- 配置事务 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean> <!-- 开启注解事务 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
完成了 Spring 和 Mybatis 的合并,想想项目中分层的开发思想,我们已经解决了 DAO 和 Service 层。最后还剩下一个 Springmvc,它和 Spring 本就是一家,所以直接拿来用即可。
说到 Springmvc 主要关注的是 web 层的配置,它的相关配置都在配置文件 springmvc.xml 中,在 web 层,我们需要调用 Service 层的对象以及将 web 层的对象注入到 Spring 中。
所以,第一步就是配置使用注解的形式扫描包,这样,对象就都进入 Spring 容器了。
<!-- 扫描@Controler @Service -->
<context:component-scan base-package="com.yu"/>
上次已经说过了,Springmvc 中是一个中心,若干个基本点。这里至少需要配置 3 个对象,处理器映射器,处理器适配器,视图解析器。
<!-- 注解驱动:这一行注释就注入了 处理器映射器和处理器适配器 -->
<mvc:annotation-driven /> <!-- 视图解释器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
当然 Springmvc 还给我们提供了很多比较常用的功能,比方说文件上传、异常处理器、拦截器,这些都是可选的功能呀。
<!-- 配置异常处理器 -->
<bean class = "com.yu.exception.MyExceptionResolver"/> <!-- 配置处理图片的实现类 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 图片最大字节数 -->
<property name="maxUploadSize" value="100000"></property>
</bean> <!-- 配置 Spring mvc 拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<!-- 自定义的拦截器类 -->
<bean class="com.yu.interceptor.Interceptor1"></bean>
</mvc:interceptor>
</mvc:interceptors>
最后不要忘了,配置的挺好,但是项目启动,没有加载配置文件一切都是扯蛋,我们需要在 web.xml 中配置 Spring 的监听器和 Springmvc 中的老大哥前端控制器并加载相应的配置文件。
说在最后,搭框架这种事,一年可能也搭不了一次,这么多的配置经常忘是很正常的,所以我强烈建议大家保留一份比较纯洁的配置。
这么贴心的我,自然是给你们准备好了。
公号后台回复【ssm】即可获取。
PS. 欢迎关注我的个人公众号:【余同学的开发之路】
最最后: 有同学和我说,现在 Spring Boot 比较火了,是的,不否认,现在 Spring Boot 用的越来越多,但是 SSM 这种经典的架构还是有好多公司在用呀!
送你一套纯净版的 SSM 架构的更多相关文章
- 格式工厂 v4.0.0 最新去广告绿色纯净版
最好用的多媒体格式转换利器:格式工厂现已更新至v4.0,此次更新加入最新的HEVC(H265)编码,MP4,MKV的压缩比大幅度提高!格式工厂,轻松转换一切你想要的格式!利器在手,转换不愁! 格式工厂 ...
- FFmpeg纯净版解码 av_parser_parse2
主要是通过av_parser_parse2拿到AVPaket数据,跟av_read_frame类似. 输入必须是只包含视频编码数据“裸流”(例如H.264.HEVC码流文件),而不能是包含封装格式的媒 ...
- 自己封装的Windows7 64位旗舰版,微软官网上下载的Windows7原版镜像制作,绝对纯净版
MSDN官网上下载的Windows7 64位 旗舰版原版镜像制作,绝对纯净版,无任何精简,不捆绑任何第三方软件.浏览器插件,不含任何木马.病毒等. 集成: 1.Office2010 2.DirectX ...
- 软媒魔方 v6.2.1.0 绿色纯净版及经典版
软媒魔方,最好用的 Windows 系统增强软件!从最早的优化大师发展为一款系统超级增强套装,自动化.智能化解决各种电脑问题.软媒魔方,全新一代Windows系统增强辅助工具,智能+专业双操控模式,系 ...
- HaoZip(好压) 去广告纯净版 4.4
软件名称: 好压 去广告纯净版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win8 / Win7 / Vista / WinXP 软件大小: 6.3MB 图片预览: 软件简介: 好压去广 ...
- sublime从官网纯净版到插件完整版
01.纯净版下载地址:www.sublimetext.com/ 02.下载Package Control插件管理工具,网址:https://packagecontrol.io/ 安装介绍:https: ...
- 最简单的基于FFmpeg的解码器-纯净版(不包含libavformat)
===================================================== 最简单的基于FFmpeg的视频播放器系列文章列表: 100行代码实现最简单的基于FFMPEG ...
- 最简单的基于FFmpeg的编码器-纯净版(不包含libavformat)
===================================================== 最简单的基于FFmpeg的视频编码器文章列表: 最简单的基于FFMPEG的视频编码器(YUV ...
- 雨林木风ghostwin7纯净版系统下载
雨林木风ghostwin7纯净版系统下载 关于easyuidatagrid的问题,跪求老司机带带我..... 关于cst_modesys/stat.h一个问题求解答谢谢 [程序]STM32使用SPI接 ...
随机推荐
- Flask script 内的Shell 类 使用
1.集成Python shell 每次自动shell会话都要导入数据库实例和模型,很烦人.为了避免一直重复导入,我们可以做些配置让Flask-Script的Shell命令自动导入特定的对象.若想把对象 ...
- P3089 [USACO13NOV]POGO的牛Pogo-Cow
P3089 [USACO13NOV]POGO的牛Pogo-Cow FJ给奶牛贝西的脚安装上了弹簧,使它可以在农场里快速地跳跃,但是它还没有学会如何降低速度. FJ觉得让贝西在一条直线的一维线路上进行练 ...
- UVALive - 4094 WonderTeam (贪心)
题目大意: 有n支队伍,每两支队伍打两场比赛(主客场各一次),胜得3分,平得1分,输不得分,比赛结束之后会评选出一个梦之队,梦之队满足以下条件:进球总数最多,胜利场数最多,丢求总数最少,三个都不能并列 ...
- elementUI 表格分页后台排序记录
表格代码 <div class="m-table"> <el-table :data="logs" style="width: 10 ...
- Linux iptables常用命令的使用
为什么会有本文 因为最近帮一个朋友布署一个上网梯子,他那边本来用的是v2ray,但是他想用ssr,但是安装配置ssr过程中出了很多问题,比如linux内核版本4.9有点老,不支持bbr加速.无法连接s ...
- [转载]JavaScript 运行机制详解:再谈Event Loop
https://app.yinxiang.com/shard/s8/sh/b72fe246-a89d-434b-85f0-a36420849b84/59bad790bdcf6b0a66b8b93d5e ...
- 从零开始编写自己的JavaScript框架(二)
2. 数据绑定 2.1 数据绑定的原理 数据绑定是一种很便捷的特性,一些RIA框架带有双向绑定功能,比如Flex和Silverlight,当某个数据发生变更时,所绑定的界面元素也发生变更,当界面元素的 ...
- SpringSecurity csrf验证忽略某些请求
前几天项目中遇到springSecurity问题,研究了大半天,掉进了csrf的坑,先认识一下csrf CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟 ...
- HDU 2112 HDU Today 最短路
题目描述: Problem Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这 ...
- HTML5 CSS Reset
最近在学习HTML和CSS,发现一个不错的模板,放于此处. /* html5doctor.com Reset Stylesheet v1.6.1 Last Updated: 2010-09-17 Au ...