简言:工欲其事必先利其器,作为一个大四的准毕业生,在实习期准备抽空补一下基础。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-查缺补漏第一天的更多相关文章

  1. 互联网轻量级框架SSM-查缺补漏第六天【级联+延迟加载特辑】

    简言:本来这是昨天看的,但是因为想好好写一下[级联]这个东西,所以就看完之后今天来整理一下. 级联 1. 什么是级联 级联是一个数据库实体的概念.比如教师就需要存在学生与之对应,这样就有教师学生表,一 ...

  2. 互联网轻量级框架SSM-查缺补漏第八天(MyBatis插件plugin使用及原理)

    简言:今天进行第八天的记录(只是写了八天).有的时候看的多,有的时候看的少,看的少的时候就攒几天一起写了.而今天这个插件我昨天写了一下午,下班没写完就回去了,今天把尾收了,再加上一个过程图方便下面原理 ...

  3. Java EE互联网轻量级框架整合开发— SSM框架(中文版带书签)、原书代码

    Java EE互联网轻量级框架整合开发 第1部分 入门和技术基础 第1章 认识SSM框架和Redis 2 1.1 Spring框架 2 1.2 MyBatis简介 6 1.3 Spring MVC简介 ...

  4. Android查缺补漏(View篇)--自定义View利器Canvas和Paint详解

    上篇文章介绍了自定义View的创建流程,从宏观上给出了一个自定义View的创建步骤,本篇是上一篇文章的延续,介绍了自定义View中两个必不可少的工具Canvas和Paint,从细节上更进一步的讲解自定 ...

  5. Android查缺补漏(线程篇)-- AsyncTask的使用及原理详细分析

    本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8515304.html 一.AsyncTask的使用 AsyncTask是一种轻 ...

  6. 「查缺补漏」巩固你的Nginx知识体系

    Nginx篇 基本介绍 Nginx是一款轻量级的 Web服务器 / 反向代理服务器 / 电子邮件(IMAP/POP3)代理服务器,主要的优点是: 支持高并发连接,尤其是静态界面,官方测试Nginx能够 ...

  7. Android查缺补漏(IPC篇)-- Bundle、文件共享、ContentProvider、Messenger四种进程间通讯介绍

    本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8387752.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...

  8. Android查缺补漏(IPC篇)-- 款进程通讯之AIDL详解

    本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8436529.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...

  9. Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解

    本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8436529.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...

随机推荐

  1. Maven配置与安装

    最近重装了一下系统,便重新安装与配置了maven,记录这个过程并分享出来. 注意:maven安装需要Java依赖,我这里使用的是jdk1.8. 1.安装并配置环境变量 首先在 maven 官网下载 m ...

  2. P3185 [HNOI2007]分裂游戏

    $ \color{#0066ff}{ 题目描述 }$ 聪聪和睿睿最近迷上了一款叫做分裂的游戏. 该游戏的规则试: 共有 n 个瓶子, 标号为 0,1,2.....n-1, 第 i 个瓶子中装有 p[i ...

  3. HDU-1431-素数回文(暴力打表)

    素数回文 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  4. C#中实现https的双向认证

    1.  把浏览器中的证书导出为cer文件. 2.   代码如下: using System; using System.Net; using System.IO; using System.Secur ...

  5. 003 Android常见错误汇总

    1.installation failed with message invalid file 解决办法: <1>.点击工具栏上的Build中的Clean Project <2> ...

  6. 使用 v-model 实现 双向绑定.(子组件和父组件.)

    vue 自定义组件 v-model双向绑定. 父子组件同步通信   父子组件通信,都是单项的,很多时候需要双向通信.方法如下: 1.父组件使用:msg.sync="aa"  子组件 ...

  7. 关于webpack 以及 webpack配置和常用插件的学习记录 (2) ------ devServer

    DevServer: devserver会启动一个http服务器用于服务网页请求,接收webpack发出的文件变化的信号.通过websocket协议自动刷新网页,实现实时预览. 安装: npm i w ...

  8. .Net支持Redis哨兵模式

    csredis 博客 csRedisgit地址 csRedis3.2.1 Nuget地址 (在使用csredis3.2.1获取sentinel时产生运行时异常,调查问题最后发现是获取sentinel的 ...

  9. hibernate树

    1. 树实现通过pid进行指向上一层来实现,实体类代码如下 package com.test.model; import java.util.HashSet; import java.util.Set ...

  10. wamp下localhost目录Your Projects下项目无法打开解决方案

    最近在学PHP,然后可能遇到各种小白问题,记录下来当做自己成长的见证吧: wamp下localhost目录Your Projects下项目无法打开,但是在url中输入项目可以访问到. 解决方案: 注意 ...