《JavaEE互联网轻量级框架整合开发》读书笔记01

20200303-认识SSM框架和Redis

一、Spring框架

Spring框架是Java应用最广泛的框架。包括IOC(控制反转)和AOP(面向切面编程)理念。

Spring核心模块
Spring的核心模块如下所示:
Core Container:核心容器(IOC)由Beans,Core,Context,SpEL组成
AOP和Aspects:面向切面编程
Data Access/Integration(数据访问/集成):访问数据库,由JDBC,ORM,JMS,Transactions,OXM组成
Web:Spring开发web应用的模块,由WebSocket,Servlet,Web(和原生web相关的),Project组成

1.1 SpringIOC

控制反转:由主动的new资源,变为被动的接收
通过描述来完成对象的创建并维护对象之间的关系。
优点:
(1)各个对象都可以相互独立的存在,向容器描述所需资源,容器会自己找到你需要的资源,将Bean之间的依赖关系解耦了。
(2)程序结构清晰
(3)提供对Java Bean生命周期的管理,可以延迟加载,可以在其生命周期内定义一些行为,方便有效的使用和管理Java资源

1.2 SpringAOP

IOC的目标是为了管理JAVA Bean,而Bean是Java面向对象的基础设计。
当一个切面条件跨越了3个甚至更多的对象并且影响了他们之间的协作,此时只用OOP并不完善,还需要面向切面的编程,通过他去管理在切面上的某些对象之间的协作。

SpringAOP常用于数据库事务的编程
例如我们在做完第一步数据库数据更新之后,不知道下一步是否会成功,如果失败,会使用数据库事务的回滚功能去回滚事务,使第一步数据库更新作废。
SpringAOP实现的数据库事务管理中,是以异常作为消息的。
默认情况下(可以通过spring的配置进行更改),只要接收到异常信息,就会回滚事务,保证数据的一致性。

1.3 MyBatis

前身是Apache的开源项目iBatis,基于Java的持久层框架。
优点:灵活,几乎可以代替JDBC,提供了接口编程
特点:提供自动映射,动态SQL,级联,缓存,注解,代码和SQL分离等特性,使用方便,同时也可对SQL进行优化,具有封装少,映射多样化,支持存储过程等特点使其取代了Hibernate成为了Java互联网首选的持久框架。

1.3.1 Hibernate和MyBatis
在Hibernate或MyBatis中可以通过XML或者注解提供映射规则,此文讨论的是XML格式,因为MyBatis中注解方式会受到一定的限制,所以MyBatis通常使用XML方式实现映射关系。

ORM框架(对象关系映射框架,ORM,或O/RM,或O/R mapping)
POJO对象和数据库表相互映射的框架,上述两个框架都可以称作ORM框架。
Hibernate和MyBatis区别
Hibernate
特点:
基本不再需要编写SQL就可以通过映射关系生成对应的SQL来操作数据库,是一种全表映射的体现。同时提供了日志,缓存,级联(级联比MyBatis强大)等特性,还提供了HQL对POJO进行操作,使用方便。
缺点:
由于无需SQL,当多表关联超过3个时,通过hibernate的级联会造成太多性能的丢失,hibernate无法支持根据特定的条件变化而变化的变化(好拗口啊),遇到存储过程也只能作罢,更为关键的是性能,响应过慢会丧失客户,所以更适用于管理系统。
MyBatis
特点:
需要提供接口和SQL去运行,MyBatis更加精确的定义SQL,从而优化性能。灵活性,可优化型超过了Hibernate。符合移动互联网高并发,大数据,高性能,高响应的要求。
优点:自由书写SQL,支持动态SQL,处理列表,动态生成表名,支持存储过程。可以灵活的定义查询语句,满足各类需求和性能优化的需要。
缺点:需要编写SQL和映射规则,工作量稍微大于Hibernate,其次,支持工具有限,不想Hibernate有许多的插件可以帮助生成映射代码和关联关系,即使使用生成工具也需要开发者进一步简化,工作量相对大些。
总结:性能要求不太苛刻的系统(管理系统,ERP系统)推荐使用Hibernate,性能要求高,响应快,灵活的系统则推荐MyBatis。

1.4 SpringMVC

SpringMVC结构层次清晰,类比较简单,并且与Spring的核心IOP和AOP无缝对接,成为了互联网的主流框架。

MVC模式把应用程序(输入逻辑,业务逻辑和UI逻辑)分成不同的方面,同时提供这些元素之间的松耦合。
功能:定义逻辑视图(渲染),消息转换(将数据转换为JSON提供给前端Ajax请求使用)等
重点:流程和一些重要的注解,包括控制器,视图解析器,视图等。

1.5 Redis

Redis是当前互联网世界最为流行的NoSQL(Not Only SQL)
Redis可以很大程度上提高互联网系统的性能。
Redis具备一定持久层的功能,也可以作为一种缓存工具。

那些高并发的操作,可以在NoSQL上先完成写入,等待某一个时刻再批量写入数据库,这样就能满足系统的性能要求了
优点:响应快速,支持6种数据类型,操作都是原子的,MuLtiUtility工具

1.6 SSM+Redis概述

SpringIOC:承担了一个资源管理,整合,即插即拔的功能。
SpringAOP:提供切面管理,特别是数据库事务管理的功能。
SpringMVC:把模型,视图和控制器分层,组合成一个有机灵活的系统。
MyBatis:提供了一个数据库访问的持久层,通过MyBatis-Spring项目。它便能和Spring无缝对接。
Redis:作为缓存工具,它提供了高速度处理数据和缓存数据的功能,使系统大部分只需要访问缓存,无需从数据库磁盘中重复读写;在一些需要高速运算的场合,可以先用它来完成运算,再把数据批量存入数据库,这样便能极大地提升互联网系统的性能和响应能力。

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值