Spring为何如此强大?--《Spring实战》系列02

前天入手Spring 三剑客后,拿起了最厚的一本《Spring实战》开始读,越读越爽,越读越觉得Spring牛X。怪不得这么多人喜欢,怪不得她这么受欢迎,今天看完第一章之后,我仿佛找到了答案,Spring太强大了,这实力根本不允许她低调啊。说了这么半天,Spring到底是何方神圣,她到底有哪些与众不同之处,让我们一起揭开她神秘的面纱。

读完第一章“Spring之旅”后,我从两个方面总结出她的魅力所在。

01 : 三把宝刀奠定了她在江湖中的地位,其中前两把尤为厉害。

它们分别是:DI 依赖注入, AOP 面向切面编程,模板技术。那么问题来了,为什么是这三把宝刀让Spring称霸于江湖?原因还要从历史讲起,话说在Java近20年的历史中,它经历过最好的时代,也经历过饱受诟病的时代。Spring的腾空出世讲将ava从水深火热中拯救了出来,算的上是非常重要的功臣之一了。那Spring到底做了什么呢?

一句话总结:简化Java开发。

原先的企业级Java技术非常的笨重,属于重量级的技术,尤其是EJB (Enterprise Java Bean). Spring作为轻量级框架的现身,让Java开发变得更加简洁。而Spring之所以被称为是轻量级框架,就是因为背后的三把宝刀,其中DI 和AOP 有着功不可没的功劳。那么DI 和AOP又做了什么呢?

DI 依赖注入,听上去很高深莫测,其实就做了一件事,把Java开发中类和类之间的调用关系变简单了。在Spring之前,一个类如果想要和另一个类合作完成一个业务逻辑,那么需要非常生硬的调用类对象,当许多类调用许多类的时候,整个程序代码的耦合度就非常高。那么DI 的出现,使得类与类之间的合作变得简单了很多,Spring提供了很多依赖注入的方式,比如说构造器注入,通过在XML配置文件中配置一个类,创建一个bean对象,当一个类想要和另一个类合作的时候,直接就可以自动注入进来。这就大大的降低了代码的耦合度,实现松耦合的效果。

AOP 面向切面编程,它又做了什么工作呢?这要从类和组件的功能说起,许多类在一起可以组成一个组件,每个组件又各负责一块特定的功能。但除此以外,它们还经常承担着额外的职责,比如说日志,安全,事务管理这些系统服务,这些服务通常称为横切关注点。如果把这些横切关注点全部分散到各个组件中去,那么整个程序会变得非常复杂和混乱。请看下图:

在这里插入图片描述

那有没有一种方法可以把这些横切关注点单独提取出来?还真有,这就是AOP的价值所在了。AOP将这些服务模块化,最大程度的保证了原有组件只负责自身的业务逻辑,而AOP负责把横切关注点抽离出去,就像下面这张图一样:

在这里插入图片描述

这样就清爽了很多。那么AOP是如何做到的呢?也是通过在XML文件中进行配置,当某块组件需要执行系统服务的时候,就可以轻松的调用这些系统服务,达到松耦合的疗效。

再来说第三把宝刀,模板技术。Spring中使用模板消除了样板式代码,什么意思呢?拿JDBC举例,在之前如果想要从数据库中查询一条数据,那么需要写非常多的JDBC样板式代码,这是硬性要求必须的。而真正关键的SQL语句,其实只占了很小的一部分。而Spring提供的模板技术,如JdbcTemplate就使得执行数据库操作时,变得非常简洁,代码量非常之少。

这三把宝刀还有非常丰富的内涵,在后面的章节会具体地讲到。除此之外,这一切都是在哪里发生的呢?Spring提供的容器之中,这个容器里面还有很多非常好玩的Bean,每个bean还都有自己的生命周期,为了简化Java开发,每个bean出生入死,无时无刻的提供着自己的价值,这一点也在以后的文章中再详细阐述。

02 :Spring背后有一个庞大的生态圈,这让她的能量超乎想象。

除了上面提到的Spring自身拥有的三把宝刀,Spring还拥有非常完善的六大模块,这更稳定了她在江湖中的地位。它们分别是:a. 数据访问与集成 b.Web与远程调用 c.面向切面编程 d.Instrumentation e.Spring核心容器 f.测试,详情请看下图:
在这里插入图片描述

这六大模块在第一章节也是做简单介绍,但是它们涉及的范围之广,程度之深,也是让人叹为观止。具体到底有厉害,还是要在后面的章节继续揭秘。

除此之外,Spring本身也在不停的向前发展,每一个版本的迭代都提供了新的特性,从Spring 3.1新特性,到现在的Spring 4.0新特性,每次都会有新的惊喜,都为进一步简化Java开发做出新的贡献。相信未来,Spring也肯定会变得越来越强大。

以上就是自己在读完第一章“Spring之旅”后,认为Spring如此强大的原因,三把宝刀加庞大的生态圈。下次再碰到面试官问,“请你谈谈对Spring的理解”,那就把上面这些关于Spring的故事讲给他听。

如果想要了解更多关于Spring的细节,我们下回再见。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值