互联网轻量级框架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 ...
随机推荐
- 【BZOJ4555】[TJOI&HEOI2016]求和 斯特林数+NTT
Description 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: S(i, j)表示第二类斯特林数,递推公式为: S(i, j) = j ∗ S(i ...
- centos6.3安装 jdk-8u131-linux-x64.gz
解压指令为:tar -zxvf jdk-8u131-linux-x64.gz 设置环境变量,首先是打开设置环境变量的文件夹,指令为:vi /etc/profile 然后在英文输入法下切换到“插 ...
- springboot集成巨杉数据库
springboot倾向于约定优于配置,所以大大简化了搭建项目的流程,包括各种数据源的配置,接下来就和大家分享下最近用到的巨杉数据源连接池的配置 1.现在配置文件中定义巨杉连接池的各种连接信息,至于每 ...
- django日期查询出现UTC日志转换CONVERT_TZ出错的问题
select CONVERT_TZ(NOW(), 'UTC', 'UTC') 出现NULL值, 原因是MySQL少了时区表: SELECT * FROM mysql.time_zone; SELECT ...
- Eclipse设置自动生成的javadoc
1.点击 Window -> Preference -> Java -> Code Style -> Code Template ,在右边选择 Comments -> 相 ...
- 安装jdk1.8,编写环境变量
好记性不如烂笔头!!!(我这是把jdk放在的/usr/local下,且命令为jdk1.8...复制的时候别搞错位置了) JAVA_HOME=/usr/local/jdk1./ JAVA_BIN=/us ...
- HTTP记录
-------------TCP握手协议------------- 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接. [第一次握手]建立连接时,客户端发送syn包(syn ...
- python学习之路---day07
一:先看什么事赋值? 以例子举例说明:. a=[1,2,3,[11,22,33]] b=a print(b) -->b=[1,2,3,[11,22,33]] 01):赋值 浅拷贝:我们创建a时, ...
- Android 数据库框架GreenDao实战使用
1.添加记录(SQLite 增) 2.删除记录(SQLite 删) 3.修改记录(SQLite 改) 4.查询记录(SQLite 查) <1> DAO查询 <2>QueryBu ...
- Foremost恢复Linux中已删除的文件
Foremost 我们只能在Linux中恢复已删除的文件,只要这些扇区在硬盘上没有被覆盖. 首先安装 要在CentOS上安装Foremost,我们将从官方网页下载并安装最前面的rpm.打开终端并执行以 ...