Spring(一)------ Spring 整体架构、环境搭建、入门案例

系列文章目录

例如:第一章 Python 机器学习入门之pandas的使用


前言

        在大学期间,我有接触过 Spring 框架,能深刻地感受到它的强大与魅力,但也仅限于面向应用开发,对它的底层实现原理全然不知,那么也就无法领悟到它的精髓(优秀的设计思想及编程理念)。当然,阅读源码的好处很多,像提高自己的阅读源码能力、学习优秀大师的设计理念、思想等。
        在大学期间,老师经常提倡我们看源码,但阅读源码是一个艰涩与枯燥的过程,所以,基本没有人真的去看源码。如今,自己已经走上了开发的道路,为了以后能走得更高更远,有必要看看源码。至于为什么是 Spring 源码?因为它相对较难啊。难的都会,看其他相对简单地就容易多了。这里我看的书是《Spring 源码深度解析》第2版


1. Spring 简介

        Spring 是于 2003 年兴起的一个轻量级 Java 框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的,它使用基本的 JavaBean 来完成以前只可能有 EJB 完成的事情。它的核心是控制反转(IoC)和面向切面(AOP)。任何 Java 应用都可以从 Spring 中收益。

2. Spring 的整体架构

Spring 框架是一个分层架构,它包含一些列的功能要素,并被分为大约 20 个模块,如下图所示:
图
这些模块被总结为一下几部分:

2.1 Core Container

Core Container 包含有 Core、Beans、Context、Express Language 模块。
Core 和 Beans 模块是框架的基础部分,提供 IOC 和 DI 特性。

  • Core 模块主要包含 Spring 框架基本的核心工具类,Spring 的其他组件都要用到这个包里的类
  • Beans 模块是所有应用都要用到的,它包含访问配置文件、创建和管理 bean 以及 IOC/DI 操作相关的所有类
  • Context 模块构建与 Core 和 Beans 模块基础之上,提供了一种类似于 JNDI 注册器的框架式的对象访问方法。Context 模块继承了 Beans 的特性,为 Spring 核心提供了大量扩展,添加了对国际化(如:资源绑定)、事件传播、资源加载和对 Context 的透明创建的支持。ApplicationContext 接口是 Context 模块的关键
  • Express Language 模块提供了强大的表达式语言,用于在运行时查询和操作对象。

2.2 Data Access/Integration

Data Access/Integration 层包含 JDBC、ORM、OXM、JMS、Transaction 模块。

  • JDBC 模块提供了一个 JDBC 抽象层,它包含了 Spring 对 JDBC 数据访问进行封装的所有类
  • ORM 模块为流行的对象-关系映射 API,如: JPA、JDO、Mybatis等,提供了一个交互层
  • OXM 模块提供了一个对 Object/XML 映射实现的抽象层,Object/XML 映射实现包括:JAXB、Castor、XMLBeans、JiBX 和 XStream
  • JMS 模块主要含了一些制造和消费消息的特性
  • Transaction 模块支持编程和生命性的事务管理,这些事务类必须实现特定的接口,并且对所有的 POJO 都适用

2.3 Web

Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文

  • Web 模块:提供了基础的面向 Web 的集成特性。如:多文件上传
  • Web-Servlet 模块
  • Web-Struts 模块
  • Web-Porlet 模块

2.4 AOP

AOP 模块提供了一个符合 AOP 联盟标准的面向切面编程的实现,它让你可以定义例如方法拦截器和切点,从而将逻辑代码分开,降低它们之间的耦合性。利用 source-level 的元数据功能,还可以将各种行为信息合并到你的代码中。
Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不同依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

  • Aspects 模块提供了对 AspectJ 的集成支持
  • Instrumentation 模块

2.5 Test

Test 模块支持使用 JUnit 和 TestNG 对 Spring 组件进行测试。

各个模块之间的依赖关系

在这里插入图片描述

3. 环境搭建

IDEA导入Spring源码环境搭建

3.1 源码获取

  1. 进入 github 官网,搜索 Spring
    在这里插入图片描述

  2. 找到 spring-framework 工程,并进入
    在这里插入图片描述

  3. 切换自己需要的版本
    在这里插入图片描述

  4. 可获取 Git 分支链接
    在这里插入图片描述

3.2 IDEA 导入

IDEA 下 Spring Git 拉取分支。

因为,我没有搭建此环境,所以,这里就省略了。读者可以到网上找其他的方法哈~~~

接下来来看看 Spring 的一个入门案例咯

4. Spring 入门案例

在 Spring 中,bean 是最核心的东西,因为 Spring 就像是个大水桶,而 bean 就像是容器中的水,水桶脱离了水便也没什么用处了~~~这里使用 Spring 入门案例来回顾容器的基本用法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值