SSM+Redis结构框架图及概述
2018-01-13 22:50
134 查看
最近在学习SSM+Redis框架,所以今天根据这个学期学到的知识先对框架做一个总结,先有个概念。
在java互联网中,以Spring+SpringMVC+MyBatis(SSM)作为主流框架,SSM+Redis的结构框图如下:
下面简单介绍它们各自承担了的功能。
1、Spring IoC(Inversion of Control,控制反转)承担了一个资源管理、整合、即插即拔的功能。举个例子,在java中我们为国家插座设计两种接口,那我们就可以为两种插座分别new两个对象,但是如果要更改上千次这种插座,难道要new很多对象吗,所以不用new的方式创建对象,而是使用配置的方式,然后使用配置的方式,然后让Spring IoC容器自己通过配置去找到插座。
2、Spring AOP(Aspect Oriented Programming,面向切面编程),特别在数据库管理方面。这种面向对象和面向切面有什么区别呢?面向对象面对一个个具体的事物,比如一个订单系统里面有订单、生产部门、财务部门3个OPP对象。如果发生异常,就需要分别对这三个对象进行回滚事物。而面向切面是面向这三个对象,它会将数据库的事物回滚,从而保证数据的一致性。
3、SpringMVC包括Model(模型)、View(视图)、Controller(控制器),其中模型负责封装应用程序的数据和由他产生的POJO;视图负责把模型数据渲染到视图上,将数据以一定的形式展现给用户,控制器负责处理用户请求,并建立适当的模型把它传递给视图渲染。
4、MyBatis提供了一个数据库访问的持久层,通过MyBatis-Spring项目,它便能和Spring无缝对接。
5、Hibernate也是持久层,也就是SSH中的H,为什么会出现SSH被SSM取代的原因,特别是Hibernate被MyBatis取代。首先我们必须从他们两者的区别说起,Hibernate基本不需要编写SQL语句,而是通过映射关系来操作数据库,是一种全表映射的体现;而MyBatis则不同,它需要通过我们提供SQL去运行。在过去的管理系统时代,先要完成业务功能,再讲究性能,而屏蔽了SQL的Hibernate更加适合开发。但是到了互联网时代,需要性能,MyBatis能够克服Hibernate在多表关联超过三个的情况下造成的级联性能丢失。所以对于性能要求不太苛刻的系统,不如管理系统和ERP等推荐Hibernate;而对于性能要求高、响应快、灵活的系统则推荐使用MyBatis。
6、Redis作为最流行的NoSQL(非关联数据库),它提供了高速处理数据和缓存数据的功能,使得系统大部分只需要缓存页面,而无须从数据库磁盘中重复读写;在一些需要告诉运算的场合中,也可以通过先用它来完成运算,再把数据批量存入数据库,这样便能极大提高了互联网系统的性能和响应能力。但是本人认为它不可能完全取代数据库,因为数据库系统有更好的规范性和数据完整性,安全性更高。
后续会放出更多学习的记录,比如机器学习的基础、爬虫、金融风险分析等等,甚至一些操作系统和数据库方面的课程难题。
在java互联网中,以Spring+SpringMVC+MyBatis(SSM)作为主流框架,SSM+Redis的结构框图如下:
下面简单介绍它们各自承担了的功能。
1、Spring IoC(Inversion of Control,控制反转)承担了一个资源管理、整合、即插即拔的功能。举个例子,在java中我们为国家插座设计两种接口,那我们就可以为两种插座分别new两个对象,但是如果要更改上千次这种插座,难道要new很多对象吗,所以不用new的方式创建对象,而是使用配置的方式,然后使用配置的方式,然后让Spring IoC容器自己通过配置去找到插座。
2、Spring AOP(Aspect Oriented Programming,面向切面编程),特别在数据库管理方面。这种面向对象和面向切面有什么区别呢?面向对象面对一个个具体的事物,比如一个订单系统里面有订单、生产部门、财务部门3个OPP对象。如果发生异常,就需要分别对这三个对象进行回滚事物。而面向切面是面向这三个对象,它会将数据库的事物回滚,从而保证数据的一致性。
3、SpringMVC包括Model(模型)、View(视图)、Controller(控制器),其中模型负责封装应用程序的数据和由他产生的POJO;视图负责把模型数据渲染到视图上,将数据以一定的形式展现给用户,控制器负责处理用户请求,并建立适当的模型把它传递给视图渲染。
4、MyBatis提供了一个数据库访问的持久层,通过MyBatis-Spring项目,它便能和Spring无缝对接。
5、Hibernate也是持久层,也就是SSH中的H,为什么会出现SSH被SSM取代的原因,特别是Hibernate被MyBatis取代。首先我们必须从他们两者的区别说起,Hibernate基本不需要编写SQL语句,而是通过映射关系来操作数据库,是一种全表映射的体现;而MyBatis则不同,它需要通过我们提供SQL去运行。在过去的管理系统时代,先要完成业务功能,再讲究性能,而屏蔽了SQL的Hibernate更加适合开发。但是到了互联网时代,需要性能,MyBatis能够克服Hibernate在多表关联超过三个的情况下造成的级联性能丢失。所以对于性能要求不太苛刻的系统,不如管理系统和ERP等推荐Hibernate;而对于性能要求高、响应快、灵活的系统则推荐使用MyBatis。
6、Redis作为最流行的NoSQL(非关联数据库),它提供了高速处理数据和缓存数据的功能,使得系统大部分只需要缓存页面,而无须从数据库磁盘中重复读写;在一些需要告诉运算的场合中,也可以通过先用它来完成运算,再把数据批量存入数据库,这样便能极大提高了互联网系统的性能和响应能力。但是本人认为它不可能完全取代数据库,因为数据库系统有更好的规范性和数据完整性,安全性更高。
后续会放出更多学习的记录,比如机器学习的基础、爬虫、金融风险分析等等,甚至一些操作系统和数据库方面的课程难题。
相关文章推荐
- 日志采集框架Flume、Flume介绍、概述、运行机制、Flume采集系统结构图(1、简单结构、复杂结构)
- Spring Quartz 框架结构概述
- 系统原型结构描述(概述)最近要设计一个框架,大家一起讨论下如何实现?
- Spring Quartz 框架结构概述(一)[转]
- Spring Quartz 框架结构概述
- Spring框架结构
- jedis操作redis中的map,list和set结构以及redispool
- Tomcat结构、配置文件 概述
- 【开源】OSharp3.3框架解说系列(7.1):初始化流程概述
- Redis 链表的数据结构
- ADO.net框架 概述
- thinkPHP框架目录结构
- J2EE领域的一些技术框架结构图
- Redis 内存存储结构
- ASP.NET开源框架之HIPPO技术内幕(五)--控件结构
- Redis 数据结构简介 4000
- Redis与Java - 数据结构
- 用div仿框架iframe结构布局的示例代码
- Qt图形视图框架一--概述
- Struts ——MVC经典框架结构图