资深架构师眼中的Java Web系统十年架构演化之路!

栏目: Java · 发布时间: 6年前

内容简介:还没关注?快动动手指!

还没关注?

快动动手指!

聊技术、论职场!

为IT人打造一个“有温度”的 狸猫技术窝

一 、Java Web架构演变

java 架构模式中,我们可以将MVC架构模式抽象为如下结构:

  1. View层。View层即UI层,可采用的技术如JSP,Structs,SpringMVC等

  2. Controller层。Controller表示控制器层,可采用的技术,如Servlet/Filter,Spring等

  3. Service层。Service层表示核心服务层,向架构上层提供服务

  4. DAO层。DAO层表示数据访问层,可采用的技术如jdbc和ORM框架(如Spring JDBC,JPA,Hibernate,Mybatis等)

  5. Model层。Model层即表示JavaBean对象

  6. Utilities层。Utilities层表示公共 工具

需要注意的是,在该架构抽象模型中,并未涉及到其他技术,如SOA,Nosql(Redis,Mongodb等),MQ等,

除此之外,基于Springboot+Cloud的微服务技术,也未涉及,因为这里只将基于MVC的架构模式演变,具体的JavaWeb架构,将在以后的章节讲解。

资深架构师眼中的Java Web系统十年架构演化之路!

基于如上的架构抽象模型,我们可以将该架构模式发展分为三个阶段:

阶段一 :Servlet阶段

阶段二 :SSH(Spring+Structs+Hibernate)阶段

阶段三 :SSM阶段(Spring+SpringMVC+Mybatis)阶段

其实,还存在阶段四,即微服务阶段,本篇文章不讲解。

阶段一:Servlet/Filter扮演控制器角色

在该阶段架构模式中,Servlet/Filter扮演Controller角色,JSP扮演View角色,JavaBean扮演Model角色

该阶段的数据库访问技术为具体DB的JDBC, 该模式虽然实现了所谓的MVC模式,但却存在诸多问题:

  1. 前后端分离不彻底。由于JSP技术前后端分离不彻底,开发人员往往会在JSP页面中嵌套Java代码,从而需要前端开发人员懂java技术

  2. JSP页面可读性差,编写效率低,尽管引入EL,JSTL等技术

  3. Sevlet/Filter作为控制器,面临的稳定性,安全性考验(Servlet是线程不安全的)等

  4. 数据库访问技术采用传统的jdbc,造成过多的冗余代码

当然,还存在很多问题,这里不一一列举,为了解决这些问题,JavaWeb专家们提出了一种架构思想: 模块化,抽象化和专一化的思想。

基于该思想,涌向出一批专业化开源框架,其中较为出名的组合框架便是SSH了。

资深架构师眼中的Java Web系统十年架构演化之路!

阶段二:SSH

  1. 在该架构模式中,Controller采用Spring框架技术,View采用Structs框架技术,DB访问技术采用Hibernate框架技术

  2. 从SSH中,很容易看出前后端出现了专业化,精细化分工,且朝框架演变,如前端框架采用Structs,后端框架采用Spring等

然而,SSH架构模式虽然解决了Servlet/Filter架构模式存在的问题,实现了专业化、精细化分工,实现了模块化和抽象化, 但其却存在一个比较大的问题: 框架笨重不灵活。

如Hibernate虽然能满足业务需求,能解决业务,但其笨重不灵活,不能很好地 实现可配置化的灵活方式,Structs也过于笨重。

为了解决该问题,JavaWeb专家们又提出了另外一种架构模式,即SSM架构模式。

资深架构师眼中的Java Web系统十年架构演化之路!

阶段三:SSM

该模式中,Spring扮演Controller角色,SpringMVC扮演View角色(当然,小型系统,可直接采用SpringMVC即可),Mybatis扮演DB访问技术 SSM架构模式

在当前的JavaEE中,算是比较流行的开发模式了,也是大都数企业的技术选型之一。

当然,能与SSM相媲美的另一种设计思想,那就是微服务思想(SpringBoot+cloud技术等),本篇文章不谈及微服务。

资深架构师眼中的Java Web系统十年架构演化之路!

二 、SSM核心框架概述

Spring框架

Spring框架目前是JavaWeb开发的主流框架,也可以说是诸多企业的必选框架,它大致包括六大模块。

  1. Spring核心容器。该容器是Spring框架最核心部分,它管理着Spring运用中bean的创建、配置和管理等

  2. Spring AOP。该模块为面向切面和DI(依赖注入)提供了很好的支持

  3. 数据库访问与集成模块

  4. Web与远程调用技术

  5. Instrument模块

  6. Test模块

资深架构师眼中的Java Web系统十年架构演化之路!

Mybatis框架

  1. 根据Mybatis源码,将其抽象为三层:基础支持层,核心处理层和接口层

  2. 基础支持层包括:数据源、事务管理、日志、类型转换、缓存、Bind、解析器等

  3. 核心处理层包括:配置解析、配置映射、 SQL 解析、SQL执行、结果集映射、插件等

  4. 接口层主要提供JAVA API

资深架构师眼中的Java Web系统十年架构演化之路!

End

作者: Alan

来源:

https://www.cnblogs.com/wangjiming/p/10376010.html

本文版权归作者所有

为您推荐:

  1. 扎心一问!你凭什么成为top1%的Java工程师?

  2. 【干货走一波】千万级用户的大型网站,应该如何设计其高并发架构?

  3. PK光明顶?江湖上流传的几大消息队列门派,到底有什么本质区别?

  4. 扒一扒 JVM 的垃圾回收机制,拿大厂offer少不了它!

  5. 面试阿里?如果对别人开源的Rocket MQ了如指掌,岂不是很加分?

  6. 百度、腾讯热门面试题:聊聊Unix与Java的IO模型?(含详细解析)

  7. 35岁的大龄 码农 们,如何才能不被社会淘汰掉?

  8. 一步一图,带你走进Netty的世界!

  9. 想要去阿里面试?你必须得跨过JVM这道坎!

  10. 你连Nginx怎么转发给你请求都说不清楚,还好意思说自己不是CRUD工程师?

长按下图二维码,即刻关注【 狸猫技术窝

阿里、京东、美团、字节跳动

顶尖技术专家 坐镇

为IT人打造一个 “有温度” 的技术窝!

资深架构师眼中的Java Web系统十年架构演化之路!


以上所述就是小编给大家介绍的《资深架构师眼中的Java Web系统十年架构演化之路!》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Hackers

Hackers

Steven Levy / O'Reilly Media / 2010-5-30 / USD 21.99

This 25th anniversary edition of Steven Levy's classic book traces the exploits of the computer revolution's original hackers -- those brilliant and eccentric nerds from the late 1950s through the ear......一起来看看 《Hackers》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具