【Java进阶营】Spring的起源和背景

Java 是大型分布式企业项目开发的首选语言,我们所熟悉的大部分系统平台都是以 Java 为核心进行搭建的。

经过二十多年的发展,Java 语言的性能得到了不断完善,更有大量的技术公司围绕 Java 推出了种类繁多的开源项目,以帮助解决 Java 开发中存在的各类困难。

Java 从产生到成为主流技术,其主要依靠的就是 Java EE 企业级平台开发,并且围绕着企业开发这一领域不断地制定技术标准。正因为有了这些技术标准,Java 开发与设计才变得更加灵活,也才有更多的人参与到这些标准的实现技术当中。

如图 1 所示为 Java EE 开发的标准架构。

image.png

图 1  Java EE 标准架构

通过图 1 可以发现,Java EE 中采用的是 MVC 设计模式,要求通过 EJB(Enterprise Java Bean,企业 JavaBean)实现业务中心的搭建,由会话 Bean(Remote Interface,远程接口)定义业务方法,由实体 Bean(Local Interface,本地接口)负责数据层的实现并与 SQL 数据库进行 JDBC 操作。

EJB 容器的存在,可以极大地简化 JDBC 的重复性处理,同时可以更好地管理实例化对象,使开发者只关注于业务实现。这样的技术架构虽然设计理念领先,但一个非常现实的问题是 EJB 的使用成本过高。EJB 最终未能得到广泛的应用。

EJB 未能得到广泛应用的原因:

  • 虽然 EJB 技术提供了超前的设计理念,但是稳定的 EJB 容器(如 WebSphere、WebLogic 等)价格昂贵。在进行技术选型的时候,企业不得不面对成本限制问题。当然,用户也可以选用免费的 JBoss。
  • EJB 服务器硬件价格不菲,由于需要维护对象状态,所以需要极大的性能开销。

最为重要的是,随着技术的发展,EJB 的不足之处也逐渐被人们认识到。虽然 EJB 3.x 提供的 JPA 标准为后续的实体层开发技术带来了一个新的方向,但遗憾的是并没有得到广泛的应用。

不管 Java 技术未来向何处发展,EJB 这一技术理念的出现,为整个行业带来了新的领航方向。

Java EE 开发标准强调的是 MVC 设计模式的应用以及业务层的定义。由于 EJB 没有普及开来,所以开发者需要在 Web 端手动模拟 EJB 技术实现方案。长久以来,Java 开发的设计结构如图 2 所示。在此我向大家推荐一个架构学习交流圈。交流学习伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

image.png

图 2  在 Web 中实现 MVC 设计模式

图 2 中给出了现代 Java 开发中常用的标准设计结构。由于取消了 EJB 容器,所以开发者需要通过手动代码方式实现业务层与数据层的结构,还需要利用开源的JMS消息服务组件(以ActiveMQ为代表作)实现消息组件与业务层的通信。

这样的设计可以有效降低项目的运行成本,但开发者却需要面对大量的 Java 原生代码。为了防止不同层之间形成耦合,还需要引入工厂设计模式,进行对象获取。为了方便业务层实现事务控制,还需要引入代理设计模式,如图 3 所示。这样的开发,同样会造成成本的大幅攀高。

image.png

图 3  MVC 设计模式应用

通过图 3 可以发现,缺少了 EJB 容器支持之后,开发者不仅需要手动进行对象管理,还需要依据反射机制进行一系列的先期架构设计,同时还需要考虑解耦合与多线程等种种问题。

如果可以有一个容器,能像 EJB 那样进行对象管理,帮助开发者免去软件架构设计的困难,将极大地提高开发效率。正是在这样的背景下,Spring 开发框架应运而生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值