考虑到你可能不熟悉 Spring,我这里对它做下简单介绍。我们常说的 Spring 框架,是指 Spring Framework 基础框架。Spring Framework 是整个 Spring 生态(也被称作 Spring 全家桶)的基石。除了 Spring Framework,Spring 全家桶中还有更多基于 Spring Framework 开发出来的、整合更多功能的框架,比如 Spring Boot、Spring Cloud。

在 Spring 全家桶中,Spring Framework 是最基础、最底层的一部分。它提供了最基础、最核心的 IOC 和 AOP 功能。当然,它包含的功能还不仅如此,还有其他比如事务管理(Transactions)、MVC 框架(Spring MVC)等很多功能。下面这个表格,是我从 Spring 官网上找的,关于 Spring Framework 的功能介绍,你可以大略地看下有个印象。


在 Spring Framework 中,Spring MVC 出镜率很高,经常被单独拎出来使用。它是支持 Web 开发的 MVC 框架,提供了 URL 路由、Session 管理、模板引擎等跟 Web 开发相关的一系列功能。

Spring Boot 是基于 Spring Framework 开发的。它更加专注于微服务开发。之所以名字里带有“Boot”一词,跟它的设计初衷有关。Spring Boot 的设计初衷是快速启动一个项目,利用它可以快速地实现一个项目的开发、部署和运行。Spring Boot 支持的所有功能都是围绕着这个初衷设计的,比如:集成很多第三方开发包、简化配置(比如,规约优于配置)、集成内嵌 Web 容器(比如,Tomcat、Jetty)等。

单个的微服务开发,使用 Spring Boot 就足够了,但是,如果要构建整个微服务集群,就需要用到 Spring Cloud 了。Spring Cloud 主要负责微服务集群的服务治理工作,包含很多独立的功能组件,比如 Spring Cloud Sleuth 调用链追踪、Spring Cloud Config 配置中心等。

从 Spring 看框架的作用

如果你使用过一些框架来做开发,你应该能感受到使用框架开发的优势。这里我稍微总结一下。利用框架的好处有:
解耦业务和非业务开发、让程序员聚焦在业务开发上;
隐藏复杂实现细节、降低开发难度、减少代码 bug;
实现代码复用、节省开发时间;
规范化标准化项目开发、降低学习和维护成本等等。

实际上,如果要用一句话来总结一下的话,那就是简化开发!

对于刚刚的总结,我们再详细解释一下。
相比单纯的 CRUD 业务代码开发,非业务代码开发要更难一些。所以,将一些非业务的通用代码开发为框架,在项目中复用,除了节省开发时间之外,也降低了项目开发的难度。除此之外,框架经过多个项目的多次验证,比起每个项目都重新开发,代码的 bug 会相对少一些。而且,不同的项目使用相同的框架,对于研发人员来说,从一个项目切换到另一个项目的学习成本,也会降低很多。

接下来,我们再拿常见的 Web 项目开发来举例说明一下。通过在项目中引入 Spring MVC 开发框架,开发一个 Web 应用,我们只需要创建 Controller、Service、Repository 三层类,在其中填写相应的业务代码,然后做些简单的配置,告知框架 Controller、Service、Repository 类之间的调用关系,剩下的非业务相关的工作,比如,对象的创建、组装、管理,请求的解析、封装,URL 与 Controller 之间的映射,都由框架来完成。

不仅如此,如果我们直接引入功能更强大的 Spring Boot,那将应用部署到 Web 容器的工作都省掉了。Spring Boot 内嵌了 Tomcat、Jetty 等 Web 容器。在编写完代码之后,我们用一条命令就能完成项目的部署、运行

总结

  • Spring Boot 的设计初衷是快速启动一个项目,利用它可以快速地实现一个项目的开发、部署和运行
  • Spring Boot 内嵌了 Tomcat、Jetty 等 Web 容器。在编写完代码之后,我们用一条命令就能完成项目的部署、运行

参考

84 | 开源实战四(上):剖析Spring框架中蕴含的经典设计思想或原则

Spring 框架简单介绍相关推荐

  1. Spring框架简单介绍

    1.Spring框架的概述: Spring是一个开源代码的设计层面框架,解决的是业务逻辑和其他各层次的松耦合问题,主要的思想是面向接口编程. Spring的核心是控制权反转(IOC)和面向切面(AOP ...

  2. Spring框架Runtime介绍(导包)

    一.Spring框架Runtime介绍,如图 1.1 Test: Spring提供测试功能 1.2 Core Container:Spring核心容器,Spring启动的基本条件, 1.2.1 Bea ...

  3. soul框架简单介绍与设计模式分析

    soul框架简单介绍与设计模式分析 1. 初识 1.1 查看官网文档了解 1.2. 目标: 2. 分析源码 2.1. 网关的实现原理 2.1.1. 跨域请求问题 2.1.2. 网关请求处理 2.1.3 ...

  4. Rebound动画框架简单介绍

    Rebound动画框架简单介绍 Android菜鸟一枚,有不对的地方希望大家指出,谢谢. 最近在接手了一个老项目,发现里面动画框架用的是facebook中的Rebound框架,由于以前没听说过,放假时 ...

  5. Django - Django框架 简单介绍

    Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...

  6. Spring框架的介绍以及搭建

    Spring框架的介绍以及搭建 1.框架和架构 1.1.什么是框架 1.2 架构的发展历程 2.Spring 2.1.Spring框架的优势 3.IOC 3.1.什么是IOC 4.Maven 4.搭建 ...

  7. 【修真院Java小课堂】Tiles框架简单介绍

    大家好,我是IT修真院上海分院第6期的学员,一枚正直纯洁善良的程序员 今天给大家分享一下,Tiles框架简单介绍 Tiles框架简单介绍 背景介绍 什么是Tiles Tiles 是一种JSP布局框架, ...

  8. Spring框架—基础介绍

    原文地址:https://www.cnblogs.com/lagou/p/10552815.html 目录 一.spring基本概念 二.spring框架 三.spring中机制和实现 三.sprin ...

  9. 玩转人工智能(3)常用的大数据框架简单介绍

    时光不老,我们不散. 讲大数据框架前,简单的介绍下大数据的文化.信息时代人类社会的进步得益于分享和开源.大数据时代属于信息时代的第三代发展阶段(2001年到2011年可以认为是CT行业的黄金期,200 ...

最新文章

  1. 黑盒测试之功能分解法
  2. Spring第一讲:初步了解Spring
  3. SAP Commerce Cloud Product Action 导出的层级结构设计
  4. java内容置剪贴板
  5. Leetcode-MySQL-180. 连续出现的数字
  6. mysql 杀掉连接_批量杀死MySQL连接的几种方法
  7. 云服务器的带宽是如何计算的?
  8. 最新布尔教育Blog项目实战 php博客项目实战教程 php实战教程(完整)
  9. 高德地图:No implementation found for void com.autonavi.ae.gmap.GLMapEngine.nativeIni
  10. html语言怎么修改form边框,form表单样式案例 定义html表单细边框样式
  11. 革新OCR结构化技术应用,揭秘百度中英文OCR结构化模型StrucTexT预训练模型
  12. 计算机发展对文学的影响,论计算机技术对文学接受的影响
  13. zencart的html文件,zen cart模板文件介绍
  14. 虚拟主机做游戏服务器,虚拟主机做游戏服务器
  15. ArrayList 类 的简单应用
  16. bpm js 计算 音乐_歌曲的BPM (Beat Per Minute)--每分钟节拍数
  17. 如何使用gltf模型?哪里可以免费下载GLTF模型?
  18. 布尔代数定律_布尔代数的公理和定律
  19. 微信小程序实现音乐播放器(5)
  20. proxyee-dow下载

热门文章

  1. lisp 读取样条曲线座标点_MATLAB插值绘制曲线
  2. 用户收货地址h5页面_如何实现H5可视化编辑器的实时预览和真机扫码预览功能?...
  3. pycharm中plt.show()不显示图像的解决办法
  4. 高通qusb bulk驱动_1999元!Redmi新机发布:首发高通全新SoC
  5. win7 html 设置成桌面,教你怎样设置专属自己的windows7动态桌面
  6. layui让当前页面刷新_layui点击按钮页面会自动刷新的解决方案
  7. pycharm 中文_环境搭建:3.pycharm社区版安装配置
  8. IntelliJ Idea一些常用快捷键
  9. c语言编译程序的软件下载,c语言编译器(wintc)
  10. ggplot2 多个柱状图比较_15. 再论ggplot2作图的图形元素组成