美文网首页Beautiful Java程序员半栈工程师
那些年,我们一起追的Spring

那些年,我们一起追的Spring

作者: 柳树之 | 来源:发表于2018-08-14 08:01 被阅读315次

    学无止境,但仍需及时总结。

    自去年开始写作以来,写了一些关于Spring的文章,今天将它们汇总起来,一方面方便大家阅读,另一方面,也是一次小的复盘总结。

    IOC

    首先是Spring的IOC,也就是控制反转。

    控制反转,简单说,就是你不用再自己去new对象啦,Spring已经帮你new好了,而且还配送上门。

    有同学说,这不就是工厂模式吗?

    的确,IOC用到了工厂模式,但IOC绝不仅仅是工厂模式。

    作为一个框架,Spring必须考虑,如何最大程度的简化用户的工作:

    • 如何定义一个Bean
    • 如何将一个Bean注入另一个Bean
    • 如何在Bean的生命周期里,提供各种“钩子”入口,满足用户的定制需求
    • ...

    下面是之前写过的关于IOC的文章:

    桥梁 —— BeanPostProcessor

    很多书在讲Spring的时候,往往讲完IOC,就讲AOP了,似乎AOP和IOC是两个互不相干的功能。

    实际上,虽然AOP和IOC确实是两个不同的领域,但是既然是Spring AOP,那么AOP创建的代理对象,也必须交给Spring容器去管理,所以也就有了这篇文章:BeanPostProcessor —— 连接Spring IOC和AOP的桥梁

    这篇文章里,你会看到,Spring在Bean初始化的过程中,留下一些“钩子”入口的重要性,同时可以了解到,AOP是如何利用这个钩子,把代理对象放到Springe容器的。

    Spring事务和AOP

    是的,我并没有写直接以AOP为主题的文章,一方面是懒,另一方面也是因为直接讲AOP,会比较枯燥。

    我选择的是去讲Spring源码里面,一个利用了IOC和AOP来搭建的模块——Spring Transaction

    通过对Spring事务的讲解,我们不仅仅学到了如何使用Spring事务,还加深了对IOC的理解,并且看到了AOP的实际应用,一举三得:

    尾声

    当然,Spring还有很多高大上的功能,然而,这些个高大上的功能,都是建立在IOC和AOP的基础上的,诸如上面讲到过的Transaction、还有DAO support、Spring MVC、对JavaEE应用的集成(JMS/Cache/Email)等等。

    所以你会发现,不管是Spring官方文档,或者是Spring的书籍,前面两章,无一例外,都是IOC和AOP。

    有了IOC和AOP的基础,再去学习其他模块,就会轻松很多,更容易看出其他模块的精髓。

    最后再推荐一些学习资料。

    其实学习资料这些东西,对于一项成熟的、有强大生态的技术来说,无非就那几样:

    1、几本好书
    对于Spring,推荐这两本书:《Spring实战》 + 《Spring揭秘》

    就像之前在初学Spring有没有适合的书? - Javdroider Hong的回答 - 知乎说的:

    第一本告诉你怎么用Spring

    第二本给你简单展示如何用的同时,还告诉你Spring是怎么实现的

    两者一起,让你知其然并知其所以然,绝配。

    2、官方文档
    书籍是作者学习吸收后的成果,只能算是二手学习资料。

    官方文档才是一手的学习资料,最靠近知识的源头。由于前面你已经看了书籍,可以说常用的80%的功能你都了解了,剩下的20%,也许就得从官方文档里去挖掘了。

    当然,英文好的同学,上来直接看官方文档也是可以的 (〃'▽'〃)

    3、搜索引擎
    推荐两个搜索引擎,1、谷歌 2、知乎

    学习的乐趣在于不断提问、不断发现知识盲点,然后再不断的去搜索和解决问题。

    以上,希望对你学习Spring,能有所帮助。

    相关文章

      网友评论

      • helloKimmy:所谓事物就是:做生意、没有交割就可以低成本的反悔。AOP好像是个异步对象管理模块;学习时要研究对象的生命周期和系统服务有关的内容。学习IOC可能要参考一些管道有关的知识。:smile::smile::smile:

      本文标题:那些年,我们一起追的Spring

      本文链接:https://www.haomeiwen.com/subject/miepbftx.html