Spring和SpringBoot(概述与功能)

目录

一、SpringBoot 概念

(1)基本介绍

(2)部分注解

(3)其它介绍

​编辑

二、 Spring 缺点

(1)配置繁琐

(2)依赖繁琐

三、SpringBoot 功能(为了解决 Spring 缺点从而快速开发)

(1)自动配置

(2)起步依赖

(3)辅助功能

四、小结


一、SpringBoot 概念

(1)基本介绍

  1、SpringBoot 提供了一种快速使用 Spring 的方式。(Spring Boot 就是快速构建 Spring

  2、基于约定优于配置的思想(将很多 Spring 需要配的东西已经配好了),可以让开发人员不必在配置与逻辑业务之间进行思维的切换,全身心的投入到逻辑业务的代码编写中,从而大大提高了开发的效率,一定程度上缩短了项目周期。

2014年4月,SpringBoot 1.0.0 发布。它是 Spring 的顶级项目之一

(官网:https://spring.io)。

(2)部分注解

这里面的顶级项目是指:因为Spring 并不是一门技术,而是一个整体的技术。(就是其中有很多个项目组成)

也可以去它的官网查看一下: (发现Spring 体系下的很多的顶级项目)

(3)其它介绍

解释:

1、现在用来开发Java技术,就可以用 Spring 技术来解决所有的业务功能。

Spring 提供了一系列的技术来支撑 JavaEE、Java企业级应用开发等等)

2、Spring Boot (" Build Anything ")表示用来构建项目的。对于现在的企业级应用来说,如果应用比较大的时候,一般要做成 " 微服务 " 的。也就意味着会把业务功能拆分的很细化。构建很多的项目,项目之间就用 Spring Boot 来构建。

3、而这些各种项目之间的数据交换和通信,就要用到 Spring Cloud 来配置。

4、Spring Cloud Data Flow 是进行一些数据的连接。

二、 Spring 缺点

(1)配置繁琐

    1、虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。

    2、所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但它要求的回报也不少。

(2)依赖繁琐

    1、项目的依赖管理也是一件耗时耗力的事情。在环境搭建时,需要分析要导入哪些库的坐标,而且还需要分析导入与之有依赖关系的其他库的坐标,一旦选错了依赖的版本,随之而来的不兼容问题就会严重阻碍项目的开发进度。(版本不兼容问题,项目启动报错

三、SpringBoot 功能(为了解决 Spring 缺点从而快速开发)

(1)自动配置

    1、SpringBoot 的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定 Spring 配置应该用哪个,不该用哪个。该过程是 SpringBoot 自动完成的。

   (也就是 Spring Boot 在项目启动的时候,把之前 Spring 项目所需要的配置都自动的完成了,不需要再去写那个配置文件了,至少是需要写的东西很少了)

(2)起步依赖

    1、起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。

    2、简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

   (也就是之前在引入很多的坐标,使用 Sping 开发的时候引坐标引很多个时,而 Spring Boot 就不需要了,它把很多个坐标打包了,如用到了依赖传递)


(3)辅助功能

提供了一些大型项目中常见的非功能性特性。

如嵌入式服务器、安全、指标,健康检测、外部配置等。

四、小结

1、Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式

2、Spring 的缺点:

  • 配置繁琐
  • 依赖繁琐

3、SpringBoot 功能:

  • 自动配置(简化配置繁琐
  • 起步依赖:依赖传递(简化依赖繁琐
  • 辅助功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/719115.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LDO电容选型指南

1 为什么电容的选择至关重要 电容往往被人们所忽视,在许多工程师的心目中,电容不过是两个导体加上中间的隔离电解质。总而言之,它们属于最低级的电子元件之一。 工程师们通常通过添加一些电容的办法来解决噪声问题。这是因为他们普遍将电容视…

EEtrade:现货黄金交易中的建仓指南

现货黄金是一种重要的投资方式,为投资者提供了良好的盈利环境。为了在这个市场中取得成功,投资者必须掌握建仓的技巧和策略。以下是有关如何进行现货黄金建仓的详细指南。 一、建仓基本概念 建仓,也叫开仓,是指在现货黄金交易中…

敏捷开发时代,彻底结束了

最近,我收到一位读者的私信,他最近“内耗”得非常厉害,他可能一时兴起把我的私信当作了吐槽箱。 他们公司一直实行敏捷的管理模式,复盘发现了一个问题:发布与迭代具有强相关性,一个迭代就发布一次&#xf…

C++语法13 单分支结构的相关问题详解

一、奇偶数问题 要判断一个数是否是偶数,只要判断这个数字能不能被2整除即可。如果一个数字a除以2,没有余数,那么就是偶数;如果除以2有余数,那么就是奇数。 if(a%20) a是偶数 if(a%21) a是奇数 训练&#xff1…

2-Matplotlib是什么

Matplotlib是什么 Matplotlib 是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy ndarray 数组来绘制 2D 图像,它使用简单、代码清晰易懂,深受广大技术爱好者喜爱。 NumPy 是 Python 科学计算的软件包&…

【面试干货】常见的编译时异常(运行时异常)及其处理

【面试干货】常见的编译时异常(运行时异常)及其处理 1、SQLException2、IOException3、FileNotFoundException4、ClassNotFoundException5、EOFException6、总结 💖The Begin💖点点关注,收藏不迷路💖 在Jav…

背就有效!2024下《系统架构设计师》50个高频考点汇总

宝子们!上半年软考已经结束一段时间了,准备备考下半年软考高级-系统架构设计师的小伙伴可以开始准备了,毕竟高级科目的难度可是不低的,相信参加过上半年架构的小伙伴深有体会。 这里给大家整理了50个高频考点,涵盖全书…

示例:WPF中绑定枚举到ComboBox想显示成中文或自定义名称如何实现

一、目的:在开发过程中绑定的枚举不想显示成英文字段怎么办,这里通过TypeConverter的方式来实现绑定的枚举从定义的特性中读取 二、实现 首先定义如下枚举 [TypeConverter(typeof(DisplayEnumConverter))]public enum MyEnum{[Display(Name "无&q…

LLM上下文长度扩展方案:Position Interpolation

文章目录 前言1. 预备知识2. PI3. 实验 前言 题目: Extending Context Window of Large Language Models via Positional Interpolation 论文地址:Extending Context Window of Large Language Models via Positional Interpolation 1. 预备知识 由于P…

打造工业操作系统开源开放体系

我国制造业具有细分行业、领域众多,产品丰富,制造模式多样等特点,围绕以工业操作系统为核心的工业软件赋能体系建设,离不开平台运营商、工业软件开发商、系统服务商、科研机构、工业企业等多方联合参与。聚众同行、聚力创新&#…

MySQL约束详解:构建数据完整性基石

目录 MySQL约束1.1 约束1.1 数据类型1.2 主键约束[重要]1.3 自增约束1.4 唯一约束1.5 非空约束1.6 默认值代码演示 1.7 外键约束[了解]思维导图最后 MySQL约束 MySQL作为广泛使用的开源关系型数据库管理系统,其强大的数据约束功能对于维护数据的一致性和准确性至关…

宋仕强论道之华强北假货

宋仕强论道之华强北假货,在华强北野蛮生长猥琐发育的那些年假货一度泛滥,就电子元器件来说,就有翻新(拆机)货、散新货、换标货、虚标货、也国产替代白牌货等几种主要的类型。今天我们来分析华强北假货初探之散新货&…

Windows环境部署MySQL_8.4.0 LTS的部署安装、验证连接以及卸载全过程实操手册

前言: 什么是 MySQL MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于Oracle 公司。MySQL 是一种关系型数据库管理系统,关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内&am…

IT入门知识第四部分《数据库》(4/10)

目录 1. 数据库基础 1.1 数据库的定义 1.2 数据库的关键概念 数据模型 数据库架构 数据库操作语言(DML 和 DDL) 总结 2. 关系型数据库 2.1 MySQL MySQL 的历史和特点 MySQL 的安装和配置 MySQL 的基本操作 2.2 PostgreSQL PostgreSQL 的特…

LabVIEW利用旋转编码器脉冲触发数据采集

利用旋转编码器发出的脉冲控制数据采集,可以采用硬件触发方式,以确保每个脉冲都能触发一次数据采集。本文提供了详细的解决方案,包括硬件连接、LabVIEW编程和触发设置,确保数据采集的准确性和实时性。 一、硬件连接 1. 旋转编码…

Linux搭建我的世界乌托邦探险之旅3.2整合包服务端,Minecraft开服教程

Linux服务器使用MCSM10 搭建 我的世界 乌托邦探险之旅3.2 整合包 服务端 的教程,Minecraft整合包开服教程。 大型养老探险整合包:乌托邦探险之旅3.2,探索上千种结构,造访丰富的自然群系,欣赏生动的生物动画&#xff0…

Android如何简单快速实现RecycleView的拖动重排序功能

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 要实现这个拖动重排序功能,主要是用到了RecycleView的ItemTouchHelper类 首先是定义一个接口 interface ItemTouchHelperAdapter …

MVC 框架安全

在现代 Web 开发中,使用 MVC 架构是一种流行的做法。MVC 是 Model-View-Controller 的缩写,它将 Web 应用分为三层,View 层负责用户视图、页面展示等工作;Controller 负责应 用的逻辑实现,接收 View 层传入的用户请求&…

代码随想录算法训练营第三十九天| 416. 分割等和子集

416. 分割等和子集 - 力扣&#xff08;LeetCode&#xff09; class Solution {public boolean canPartition(int[] nums) {int sum 0;for (int i0;i<nums.length;i){sum nums[i];}if(sum%2!0){return false;}int weight sum /2;// int[][] dp new int[nums.length][weig…

软件测试-第1章-绪论

目录 1.1软件危机和软件生存期 &#xff08;1&#xff09;软件危机 &#xff08;2&#xff09;软件生存周期 1.2软件测试的意义 1.3什么是软件测试 &#xff08;1&#xff09;软件测试的定义 &#xff08;2&#xff09;软件测试的范围 1.4怎样认识软件测试 1&#xff…