互联网轻量级框架SSM-查缺补漏第一天
简言:工欲其事必先利其器,作为一个大四的准毕业生,在实习期准备抽空补一下基础。SSM框架作为互联网的主流框架,在会使用的基础上还要了解其原理,我觉得会对未来的职场会有帮助的。我特意的买了一本《Java EE互联网轻量级框架整合开发》来借助书本上的理论来帮助理解。在这里我就来记录一下我每天学习到或者复习到的比较重要的知识点吧。
第一部分 入门和技术基础
第一章 认识SSM框架和Redis
1.1 Spring框架
书上介绍,Spring是Java应用最广的框架。它的成功来源于理论,而不是技术本身。它的理念包括IOC(Inversion Of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)
IOC:IOC是一个容器,在Spring中,认为一切Java资源都是JavaBean,容器的目标就是管理这些Bean和他们之间的关系。
正常创建一个对象需要new来创建。例:Socket socket = new Socket1();(这是书上的例子我就拿来用了)
Socket socket = new Socket2();
Socket1,和Socket2都是Socket的子类。假设一个程序里的Socket指向的都是Socket1的话,现在想把Socket对象指向Socket2,就需要修改所有的源代码,如果程序量大的话将是非常麻烦的事情。
IOC是通过XML来控制JavaBean之间的依赖关系,在XML中配置:
<bean id="Socket" class="Socket2">
这样只需要修改class中映射的Bean的名就行了。
控制反转:我理解就是之前我们是通过直接或许对象和对象的依赖关系,控制权在程序本身,如今是通过Spring开控制对象和对象的依赖关系,控制权在Spring,而程序不需要知道依赖关系。
书上的话就是“你不需要去找资源,只要向Spring IOC容器描述所需要的资源,Spring IOC自己会找到你所需要的资源,这就是Spring IOC的理念。”
AOP:在生产中,只用Java的面向对象(OOP)并不完善,还需要面向切面编程,通过它去管理在切面上的某些对象之间的协作。
Spring AOP常用语数据库事务的编程,即:当我们做完第一步数据库更新之后,如果第二部失败要去回滚事务。在默认的情况下()只要Spring接收到异常欣喜,它就会将数据库的事务回滚,从而保证数据的一致性。
1.2 MyBatis
MyBatis前身是Apache的开源项目iBatis。是一个基于Java持久层的框架。
优势:灵活,几乎可以代替JDBC,同时提供了接口编程。不需要实现类,只需要一个XML(或注解)和一个接口。
缺点:需要编写SQL和映射规则,工作量稍微大于Hibernate,其次,它支持的工具也很有限。
总结:遇到性能要求不太苛刻的系统,比如管理系统,ERP等推荐使用Hibernate;而对于性能要求高,相应快,灵活的系统则推荐使用MyBatis。
1.3 Spring mvc
我理解就是用来串联Spring和MyBatis的,我用的是就也就是用来书写Controller层和services层的,也是通过Spring依赖注入的形式。MVC模式也没啥好说的。
- M(Model):模型,封装了应用程序的数据和由他们组成的POJO(就是JavaBean)。
- V(View):视图,负责吧模型数据显然到视图上,将数据以一定得形式展现给用户。
- C(Controller)控制器,负责处理用户请求,并建立适当的模型把它传递给试图渲染。
互联网轻量级框架SSM-查缺补漏第一天的更多相关文章
- 互联网轻量级框架SSM-查缺补漏第六天【级联+延迟加载特辑】
简言:本来这是昨天看的,但是因为想好好写一下[级联]这个东西,所以就看完之后今天来整理一下. 级联 1. 什么是级联 级联是一个数据库实体的概念.比如教师就需要存在学生与之对应,这样就有教师学生表,一 ...
- 互联网轻量级框架SSM-查缺补漏第八天(MyBatis插件plugin使用及原理)
简言:今天进行第八天的记录(只是写了八天).有的时候看的多,有的时候看的少,看的少的时候就攒几天一起写了.而今天这个插件我昨天写了一下午,下班没写完就回去了,今天把尾收了,再加上一个过程图方便下面原理 ...
- Java EE互联网轻量级框架整合开发— SSM框架(中文版带书签)、原书代码
Java EE互联网轻量级框架整合开发 第1部分 入门和技术基础 第1章 认识SSM框架和Redis 2 1.1 Spring框架 2 1.2 MyBatis简介 6 1.3 Spring MVC简介 ...
- Android查缺补漏(View篇)--自定义View利器Canvas和Paint详解
上篇文章介绍了自定义View的创建流程,从宏观上给出了一个自定义View的创建步骤,本篇是上一篇文章的延续,介绍了自定义View中两个必不可少的工具Canvas和Paint,从细节上更进一步的讲解自定 ...
- Android查缺补漏(线程篇)-- AsyncTask的使用及原理详细分析
本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8515304.html 一.AsyncTask的使用 AsyncTask是一种轻 ...
- 「查缺补漏」巩固你的Nginx知识体系
Nginx篇 基本介绍 Nginx是一款轻量级的 Web服务器 / 反向代理服务器 / 电子邮件(IMAP/POP3)代理服务器,主要的优点是: 支持高并发连接,尤其是静态界面,官方测试Nginx能够 ...
- Android查缺补漏(IPC篇)-- Bundle、文件共享、ContentProvider、Messenger四种进程间通讯介绍
本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8387752.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...
- Android查缺补漏(IPC篇)-- 款进程通讯之AIDL详解
本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8436529.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...
- Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解
本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8436529.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...
随机推荐
- mysql的innodb自增主键为什么不是连续的
图1 图1中是表t原有的数据,这个时候我们执行show create table t会看到如下输出,如图二所示现在的自增值是2,也就是下一个不指定主键值的插入的数据的主键就是2 图2 Innodb引擎 ...
- elemetnui 分页..解决 bug
:current-page.sync="thisCurPage" 的确会 修改页码,但是会触发一个 bug... 比如 当前 选择的是第二页,使用 js 模拟 点击(或者修改父组件 ...
- HLS-搭建Nginx流媒体服务器
Nginx本身是一个非常出色的HTTP服务器,FFMPEG是非常好的音视频解决方案.这两个东西通过一个nginx的模块nginx-rtmp-module,组合在一起即可以搭建一个功能相对比较完善的流媒 ...
- rest-assured之获取响应数据(Getting Response Data)
我们使用rest-assured可以获得响应内容,比如:我们发起一个get请求 get("/lotto") 并且获得响应内容,我们有多种方式可以实现: // 通过流的方式获得响应内 ...
- Luogu P1282 多米诺骨牌 DP。。背包?
背包...差不多..QWQ 设f[i]为达到差值为i的状态需要多少次,那就很显然了: 注意区分正负不同的代价的循环方向 技巧:如果不想改负数的话,那可以移动一下数组下标,用一个新的指针指向原来的数组 ...
- Applese 的QQ群(二分+dfs)
链接:https://ac.nowcoder.com/acm/contest/330/F 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言5242 ...
- stopPropagation / stopImmediatePropagation
stopPropagation()只会阻止冒泡或者是捕获. stopImmediatePropagation()会阻止该元素的其他事件发生,但是stopPropagation就不会阻止其他事件的发 ...
- [转] 从零开始学Spring Boot
[From] http://412887952-qq-com.iteye.com/blog/2291496 一个博主写的spring boot系列文章,很赞!
- 给JFinal添加 Sqlite 数据库支持
[转自] http://my.oschina.net/u/237078/blog/69934 Sqlite 的单文件便携性.高性能在开发中方便性无与伦比,即使部署在中小型应用中也胜任有余. 在JFin ...
- F查询和Q查询
F查询 在上面所有的例子中,我们构造的过滤器都只是将字段值与某个我们自己设定的常量做比较.如果我们要对两个字段的值做比较,那该怎么做呢? Django 提供 F() 来做这样的比较.F() 的实例可以 ...