Spring 框架简单介绍
考虑到你可能不熟悉 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 框架简单介绍相关推荐
- Spring框架简单介绍
1.Spring框架的概述: Spring是一个开源代码的设计层面框架,解决的是业务逻辑和其他各层次的松耦合问题,主要的思想是面向接口编程. Spring的核心是控制权反转(IOC)和面向切面(AOP ...
- Spring框架Runtime介绍(导包)
一.Spring框架Runtime介绍,如图 1.1 Test: Spring提供测试功能 1.2 Core Container:Spring核心容器,Spring启动的基本条件, 1.2.1 Bea ...
- soul框架简单介绍与设计模式分析
soul框架简单介绍与设计模式分析 1. 初识 1.1 查看官网文档了解 1.2. 目标: 2. 分析源码 2.1. 网关的实现原理 2.1.1. 跨域请求问题 2.1.2. 网关请求处理 2.1.3 ...
- Rebound动画框架简单介绍
Rebound动画框架简单介绍 Android菜鸟一枚,有不对的地方希望大家指出,谢谢. 最近在接手了一个老项目,发现里面动画框架用的是facebook中的Rebound框架,由于以前没听说过,放假时 ...
- Django - Django框架 简单介绍
Django框架 简单介绍 本文地址: http://blog.csdn.net/caroline_wendy/article/details/29172271 1. 介绍 Django是一个开放源码 ...
- Spring框架的介绍以及搭建
Spring框架的介绍以及搭建 1.框架和架构 1.1.什么是框架 1.2 架构的发展历程 2.Spring 2.1.Spring框架的优势 3.IOC 3.1.什么是IOC 4.Maven 4.搭建 ...
- 【修真院Java小课堂】Tiles框架简单介绍
大家好,我是IT修真院上海分院第6期的学员,一枚正直纯洁善良的程序员 今天给大家分享一下,Tiles框架简单介绍 Tiles框架简单介绍 背景介绍 什么是Tiles Tiles 是一种JSP布局框架, ...
- Spring框架—基础介绍
原文地址:https://www.cnblogs.com/lagou/p/10552815.html 目录 一.spring基本概念 二.spring框架 三.spring中机制和实现 三.sprin ...
- 玩转人工智能(3)常用的大数据框架简单介绍
时光不老,我们不散. 讲大数据框架前,简单的介绍下大数据的文化.信息时代人类社会的进步得益于分享和开源.大数据时代属于信息时代的第三代发展阶段(2001年到2011年可以认为是CT行业的黄金期,200 ...
最新文章
- 黑盒测试之功能分解法
- Spring第一讲:初步了解Spring
- SAP Commerce Cloud Product Action 导出的层级结构设计
- java内容置剪贴板
- Leetcode-MySQL-180. 连续出现的数字
- mysql 杀掉连接_批量杀死MySQL连接的几种方法
- 云服务器的带宽是如何计算的?
- 最新布尔教育Blog项目实战 php博客项目实战教程 php实战教程(完整)
- 高德地图:No implementation found for void com.autonavi.ae.gmap.GLMapEngine.nativeIni
- html语言怎么修改form边框,form表单样式案例 定义html表单细边框样式
- 革新OCR结构化技术应用,揭秘百度中英文OCR结构化模型StrucTexT预训练模型
- 计算机发展对文学的影响,论计算机技术对文学接受的影响
- zencart的html文件,zen cart模板文件介绍
- 虚拟主机做游戏服务器,虚拟主机做游戏服务器
- ArrayList 类 的简单应用
- bpm js 计算 音乐_歌曲的BPM (Beat Per Minute)--每分钟节拍数
- 如何使用gltf模型?哪里可以免费下载GLTF模型?
- 布尔代数定律_布尔代数的公理和定律
- 微信小程序实现音乐播放器(5)
- proxyee-dow下载
热门文章
- lisp 读取样条曲线座标点_MATLAB插值绘制曲线
- 用户收货地址h5页面_如何实现H5可视化编辑器的实时预览和真机扫码预览功能?...
- pycharm中plt.show()不显示图像的解决办法
- 高通qusb bulk驱动_1999元!Redmi新机发布:首发高通全新SoC
- win7 html 设置成桌面,教你怎样设置专属自己的windows7动态桌面
- layui让当前页面刷新_layui点击按钮页面会自动刷新的解决方案
- pycharm 中文_环境搭建:3.pycharm社区版安装配置
- IntelliJ Idea一些常用快捷键
- c语言编译程序的软件下载,c语言编译器(wintc)
- ggplot2 多个柱状图比较_15. 再论ggplot2作图的图形元素组成