【有书共读】《Spring源码深度解读》第一章
前言
首先感谢牛客网赠送的三本Spring源码深度解读,书是全新的,非常开心。如果大家有什么好的建议,对文章有什么错误之处,非常乐意与大家交流,可以留言或者私信,我看到后会第一时间回复的。我已经在一个月之前把这本书的核心章节了解,所以可以简单介绍一下我阅读时候的一个体验。对于我来说的话,我是一边看着书,一边翻着GitHub。我个人推荐可以一边看着书上的解释,一边在GitHub上搜寻当前所看的代码片段,这样有助于更好的了解Spring源码。
其次可以聊一下Spring,Spring是Java开发中常用的框架之一,也是面试中最常问到的框架,所以有时间的情况下,可以尝试阅读以下Spring源码,对于理解和使用Spring会有很大帮助的。
介绍一下该书:这本书是13年出版的,书中内容主要被分为两个部分,第一部分:核心实现,主要说的是Spring的源码,以及一些常用的一些组件的实现。第二部分:企业应用,主要讲的是Spring整合一些我们常见的框架,如果可以的话,我会把这些demo会贴出来,方便大家参考
Spring的整体架构
本章内容主要讲的是Spring的整体架构和环境搭建。
Spring框架是一个分层的架构,架构图如下:
主要模块解释如下:
(1)Core Container:即核心容器,包含Core(Spring的核心工具类)、Bean(访问配置文件、创建和管理Bean以及IOC/DI操作相关的类)、Context(上下文运行环境,实现了对Spring的拓展)、Expression Language(提供了一个强大的表达式语言在运行时查询和操作对象)
(2)Data Access/Integration:包含JDBC(实现数据使用JDBC访问)、ORM(提供ORM映射)、OXM(实现Object和XML之间映射)、JSM(提供制造和消费消息的)和Transaction(提供编程式事务和声明式事务管理)
(3)Web:包含Web(用于Web集成)、Web-Servlet(Servlet的MVC实现)、Web-Struts(与Struts整合)、Web-Porlet(提供Prolet环境)
(4)AOP:Aspects(AspectJ切面编程)、Instrumentation(提供class Instrumentation支持和Classloader实现)
(5)Test:测试
环境搭建
(略)
注
Spring的项目地址:https://github.com/spring-projects/spring-framework,一般在该目录下会有一个概述文件spring-framework/XXX模块/src/main/java/overview.html