《Java EE互联网轻量级框架整合开发— —SSM框架(Spring MVC+Spring+MyBatis)和Redis实现》笔记

一、几个常识性错误
1. SSH框架的概念
  其实很多初学者混淆了一个概念,SSH实际上指的是Struts 1.x + Spring + Hibernate,这个概念已经有十几年历史了。在Struts 1.x的时代,Struts 1.x是当之无愧的MVC框架的霸主,但是在新的MVC框架涌现的时代,形势已经完全不是这样了,Struts 2.x借助了 Struts 1.x 的好名声,让国内开发者认为Struts 2.x 是霸主继任者(两者在技术上无任何关系),导致国内程序员大多数学习基于 2.x 的框架,又一个貌似很火的概念出来了 S2SH(Struts 2.x + Spring + Hibernate)整合开发。

2. MVC与三层架构的关系
  MVC: Model + View + Controller(数据模型+视图+控制器)
  三层架构: Presentation tier + Application tier + Data tier(展现层+应用层+数据访问层)
  那MVC和三层架构有什么关系呢?在我面试程序员的时候,经常有面试者回答:MVC的M就是数据访问层、V就是展现层、C就是应用层。怎么样?听上去是不是好像很有道理?
实际上,MVC只存在三层架构的展现层,M实际上是数据模型,包含数据的对象。在SpringMVC里,有一个专门的类叫Model,用来和V之间的数据交互、传值;V指的是视图页面,包括JSP、freeMarket等;C就是控制器。
三层架构是整个应用的架构,是由Spring框架负责管理的。一般项目结构中都有Service层、DAO层,这两个反馈在应用层和数据访问层。

 第一章  认识SSM框架和Redis
1.1 Spring框架
  1.1.1 Spring IoC

    IoC是一个容器,认为一切Java资源都是Java Bean.
              IoC的目标是管理这些Bean(bean的创建、事件、行为、依赖关系等)       
  1.1.2 Spring AOP

    核心就是切面
1.2 Mybatis简介
       1.2.1 Hibernate简介

    是对象关系映射框架(把POJO对象和数据库表相互映射),简称ORM框架。
       1.2.2 Mybatis

    也对象关系映射框架(把POJO对象和数据库表相互映射)

       1.2.3 Hibernate和Mybatis的区别  

    (1)Hibernate不需要编写SQL,Mybatis需要。

    (2)Hibernate是全表映射(因为是全表映射,所以十分影响性能),Mybatis是部分映射。

    (3)Hibernate适合管理系统,注重业务逻辑,其次才是性能。Mybatis适合互联网系统,虽需提供接口和SQL,导致工作量较Hibernate大,但正因此Mybatis更具有灵活性和可优化性。
1.3 Spring MVC简介

  Model(模型),封装了应用程序的数据和由它们组成的POJO。

  View(视图),负责把模型数据渲染到视图上,将数据以一定的形式展现给用户。

  Controller(控制器),负责处理用户请求,并建立适当的模型把它传递给视图渲染。
1.4 最流行的NoSQL——Redis

  支持六种数据类型:字符串、哈希结构、列表、集合、可排序集合和基数。

  优点:作为持久层,由于存储的数据是半结构化的,这意味着计算机在读入内存中有更少的规则,读入速度更快,更具性能优势。

        作为缓存,可以支持大数据存入内存中,因为在内存中的数据读写比磁盘的读写快几十上百倍,所以响应速度快。
1.5 SSM+Redis结构框图及概述

         

        

 

第二章 Java设计模式

2.1 Java反射技术

  2.1.1 通过反射构建对象

  2.1.2 反射方法

  2.1.3 实例

2.2 动态代理模式和责任链模式

  2.2.1 JDK动态代理

    条件:需要借助一个借口才能生成代理对象

    方法:实现 java.lang.reflect.InvocationHandler接口,它里面定义了一个invoke方法,并提供接口数组用于下挂代理对象,如代码清单 2-9所示

      

      

  2.2.2 CGLIB动态代理

    优势:不需要接口(只要一个非抽象类就能实现动态代理)

      

      

  2.2.3 拦截器

  2.2.4 责任链模式

    当一个对象在一条链上被多个拦截器拦截处理时,这种设计模式称之为责任链模式。

2.3 观察者模式

  2.3.1 概述

    又称发布订阅模式,观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监视被观察者的状态,当被观察者的状态发生变化时,会通知所有观察者,并让其自动更新自己。

  2.3.2 实例

2.4 工厂模式和抽象工厂模式

  2.4.1 普通工厂模式

  2.4.2 抽象工厂模式

2.5 建造者模式

  2.5.1 概述

  2.5.2 Builder模式实例

 

第三章 认识 Mybatis核心组件

3.1 持久层的概念和Mybatis的特点

3.2 准备Mybatis环境

3.3 Mybatis的核心组件

3.4 SqlSessionFactory(工厂接口)

  3.4.1 使用XML构建 SqlSessionFactory

  3.4.2 使用代码构建 SqlSessionFactory

3.5 SqlSession

3.6 映射器

  3.6.1 用XML实现映射器

  3.6.2 注解实现映射器

  3.6.3 SqlSession发送SQL

  3.6.4 用Mapper接口发送SQL

  3.6.5 对比两种发送SQL方式

3.7 生命周期

  3.7.1 SqlSessionFactoryBuilder

  3.7.2 SqlSessionFactory

  3.7.3 SqlSession

  3.7.4 Mapper

3.8 实例

 

第四章 Mybatis配置

4.1 概述

4.2 properties属性

  4.2.1 property子元素

  4.2.2 使用properties文件

  4.2.3 使用程序传递方式传递参数

4.3 setting设置

4.4 typeAliases别名

  4.4.1 系统定义别名

  4.4.2 自定义别名

4.5 typeHandler类型转换器

  4.5.1 系统定义的 typeHandler

  4.5.2 自定义 typeHandler

  4.5.3 枚举 typeHandler

  4.5.4 文件操作

4.6 ObjectFactory(对象工厂)

4.7 插件

4.8 environments(运行环境)

  4.8.1 transactionManager(事务管理)

  4.8.2 environment数据源环境

4.9 databaseIdProvider 数据库厂商标识

  4.9.1 使用系统默认

  4.9.2 不使用系统规则

4.10 引入映射器的方法

 

第五章 映射器

5.1 概述

5.2 select 元素-查询语句

5.2.1 简单的select元素的应用

5.2.2 自动映射和驼峰映射

5.2.3 传递多个参数

5.2.4 使用 resultMap映射结果集

5.2.5 分页参数 RowBounds

5.3 insert元素-插入语句

5.3.1 概述

5.3.2 简单的insert语句的应用

5.3.3 主键回镇

5.3.4 自定义主键

5.4 updata元素和delete元素

5.5 sql元素

5.6 参数

5.6.1 概述

5.6.2 存储过程参数支持

5.6.3 特殊字符串的替换和处理(#和$)

5.7 resultMap元素

5.7.1 resultMap元素的构成

5.7.2 使用map存储结果集

5.7.3 使用POJO存储结果集

5.8 级联

5.8.1 MyBatis中的级联

5.8.2 建立POJO

5.8.3 配置映射文件

5.8.4 N+1问题

5.8.5 延迟加载

5.8.6 另一种级联

5.8.7 多对多级联

5.9 缓存

5.9.1 一级缓存和二级缓存

5.9.2 缓存配置项、自定义和引用

5.10 存储过程

5.10.1 IN和OUT参数存储过程

5.10.2 游标的使用

 

第六章 动态SQL

6.1 概述

6.2 if元素

6.3 choose、when、otherwise元素

6.4 trim、where、set元素

6.5 foreach元素

6.6 用test的属性判断字符串

6.7 bind元素

第七章 MyBatis的解析和运行原理

7.1 构建SqlSessionFactory过程

7.1.1 构建Configuration

 

posted @ 2019-01-23 11:47  philsonzhao  阅读(2521)  评论(0编辑  收藏  举报