一、几个常识性错误
-
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)整合开发。 -
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动态代理
条件:需要借助一个借