当前位置: 首页 > news >正文

系统架构——Spring Framework

目录

(1)基本介绍

(2)基本发展历史

(3)了解和学习 Spring 4.x 系列的系统架构

1、第一个模块:做核心容器(Core Contaner)

2、第二个模块:AOP与Aspects(这是 Spring 技术的第二个核心的大块)

3、第三个模块:Data Access(数据访问)和 Data lntegration (数据集成)

4、第四个模块:Web相关的东西

5、最后一个模块:Test

(4)小结


(1)基本介绍

  • Spring FrameworkSpring 生态圈中最基础的项目。其它所有的项目的都是在它的基础上运行使用。

(也是 Spring 的 " 全家桶 " 最顶级的项目)

(2)基本发展历史

它的系统架构也经过了若干个版本的迭代,由一系列的架构图逐步发展出来。我们学习的 Spring 5.x 的系列官方并没有详细的架构图,说明在 Spring 4.x 系列的版本已经逐渐趋于稳定。

(可以看到每个版本都会有一些模块关系的调整,加入了一些新的东西或者去掉小的功能)

(3)了解和学习 Spring 4.x 系列的系统架构

1、第一个模块:做核心容器(Core Contaner

    这个模块是 Spring 框架中的最核心的部分,其它所有的模块都是依赖它运行的。看到这个是容器,它就是用来装东西的。对于 Java 程序 来说,只有一种东西可以装:" 对象 "

    对于这样一个结构设计来说,它是 Spring 一个用来管对象的技术。

(这是 Sping 系统架构的第一块)

2、第二个模块:AOP与Aspects(这是 Spring 技术的第二个核心的大块)

(首先要了解一下:系统架构图讲究上层依赖于下层)

    AOP 的位置放在这里,是要依赖于核心容器的执行。AOP:面向切面编程。与我们学的面向对象编程差不多,也是一种编程思想。它教程序该怎么做,是一种设计型的概念。

    而我们的 Spring 对这种设计型的概念进行了落地,它可以在不惊动原始程序的基础上,去增强功能。

    Aspects:是一个思想,Spring 技术对它做出了实现,而 Aspects AOP 思想做出了实现。

(后面我们学习 Spring AOP 开发时,除了要倒 Spring AOP 的坐标,还要导 Aspects 的坐标)

3、第三个模块:Data Access(数据访问)和 Data lntegration (数据集成)

(有一个 Data Access Object :数据访问对象)

看到这个这一模块就是与数据层面相关的技术。

    Data lntegration (数据集成):Spring 内部不仅提供了自主的访问数据层的技术,同时还支持用 Spring 技术与其它的技术整合使用。而这个集成就是它包容其它的技术,就比如:Mybatis。可以和 Spring 整合一起使用。

     还有一个需要单独介绍的:Transactions (事务/业务)。Spring 在事务方面做了很大的突破,提供了一种开发起来效率非常高的事务控制方案。(重点学习)

4、第四个模块:Web相关的东西

Spring 也可以进行 Web 开发,这一部分内容在后面的 Spring MVC 去学习。

5、最后一个模块:Test

最后一个模块不是在上面,而是在最下面。看到 Test ,我们就知道这是做测试的。

Spring 在单元测试和集成测试也提供了一些帮助性的操作。


以上就是整个 Spring 系统架构图的包含内容。

(4)小结

1、看完之后,第一个要学习的肯定是 Core Container(管对象的),所有的一切都是基于对象。

2、第二个就学习 SpringMybatis 的整合,学 Data AccessData lntegration(数据访问与集成)。接下来学第二个核心:AOP技术,然后学习 Spring 中的事务。至于测试比较简单。

http://www.lryc.cn/news/376664.html

相关文章:

  • Zig标准库:最全数据结构深度解析(1)
  • 什么是 Linux From Scratch (LFS)?
  • 常见的宽基指数基金
  • Python学习笔记6:pychram相关知识及安装教程,后续需要学习的入门知识
  • dockerfile文件的中的命令
  • 【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十一章)模拟波形实验例程说明
  • LUA移植到STM32F4,移植REPL,通过RTT Viewer交互
  • 【GD32F303红枫派使用手册】第十九节
  • 【C语言】扫雷游戏
  • 逻辑蕴含、函数依赖集的闭包、Armstrong公理、属性集闭包
  • macOS聚集搜索功能开启与关闭
  • 大模型“诸神之战”,落地才是赛点
  • 接口重放攻击
  • MySQL学习笔记-进阶篇-SQL优化
  • 【机器学习】第2章 线性回归及最大熵模型
  • 科技创新对农业发展的影响
  • Linux 常用命令 - rm 【删除文件或目录】
  • 一血c++
  • 无问芯穹Qllm-Eval:制作多模型、多参数、多维度的量化方案
  • 2024-05-31T08:36:09.000+00:00 转换 YYYY-MM-DD HH-MM-SS
  • reason: the Java file contained parse errors
  • 使用密钥对登录服务器
  • 面试_多线程
  • 跨境电商必备?揭秘原生IP的作用
  • mysql竖表变横表不含聚合
  • application/x-www-form-urlencoded和json的区别
  • oracle数据库日常保养或巡检语句实践整理汇总
  • Elasticsearch 第一期:基础的基础概念
  • MySQL数据库笔记(二)
  • 谷歌邮箱:2024年最全使用指南及技巧