Springboo基础入门

一、SpringBoot概述

SpringBoot的诞生背景可以追溯到对传统Spring框架的改进需求,在过去,使用spring框架构建应用程序需要大量的配置和设置,这无形中层架了开发者的工作量并且,肯能造成一些配置上的错误,因此springboot的目标就是简化spring应用陈旭的开发流程,提供默认配置和约定来减少重复代码,从而加快应用程序的开发速度提高生产力,springboot通过集成各种开发中常用功能库,例如,内嵌服务器,安全性,数据库访问等,使得开发者能够更轻松地构建应用程序。

二、SpringBoot核心思想

SpringBoot框架的核心思想是:约定大于配置(Convention Over Configuration),被约定进行编程,这也是一种软件设计规范,是为了减少软件开发人员自动配置的数量:

  • 约定并提供一些推荐的默认配置

  • 开发者只要定义好约定之外的配置参数即可

总的来说,Spring Boot致力于简化Spring应用程序的开发流程,提高开发效率,降低学习曲线,并通过提供一致的开发体验来推动微服务架构的发展。

三、SpringBoot的特性

  • 独立运行:SpringBoot框架的最大特点就是内嵌了各种容器,包括Tomcat、Jetty、Undertow,所以应用不再需要打成war包部署到tomcat上,可以将应用程序打 包成jar包,所有的依赖都在一个jar包中,使用java -jar命令运行。

  • 自动配置:是指springboot提供了一种机制,能够根据项目的依赖、路径、自定义配置等信息,自动化地配置应用程序的各种组件和功能,减少开发者的手动配置工作,简化开发流程。在springboot中自动配置是通过@EnableAutoConfiguration注解和spring,factories配置文件实现的,springboot会自动扫描项目中的各种依赖和配置信息,根据一系列默认配置、条件判断等机制,决定哪些组件需要进行自动配置。

  • 简化配置:传统的spring应用中存在各种配置,例如组件中的各种依赖,配置参数等,没有一定的专用功底,去搭建一个spring应用难度还是有的,springboot提供了各种开箱即用的starter,我们只需要导入相应的starter启动器即可,不需要再有其他的配置。

四、SpringBoot的十大核心模块

  1. spring-boot:springboot的核心模块,提供了springboot的基本功能和个性。

  2. spring-boot-starter:spring boot starter是用于简化依赖和配置的核心模块,包括常用的starter例如springbootstarterweb 用于构建web应用程序

  3. spring-boot-autoconfigure:自动配置模块,负责根据应用程序的依赖和配置自动化配置应用程序的各个组件。

  4. spring-boot-actuator:监控和管理模块,提供了监控端点用于监控应用程序的运行状况。

  5. spring-boot-cli:Spring Boot Command Line Interface,用于通过命令行快速开发Spring Boot应用程序。

  6. spring-boot-devtools:开发工具模块,提供了自动重启应用程序、热部署等开发工具。

  7. spring-boot-data:数据访问模块,包括Spring Data JPA、Spring Data MongoDB等数据访问库

  8. spring-boot-test:测试模块,提供了JUnit、Mockito、Spring Test等测试支持。

  9. spring-boot-security:安全模块,提供了Spring Security等安全框架

  10. spring-boot-web:Web模块,提供了构建Web应用程序所需的各种工具和功能。

五、SpringBoot、Spring MVC、spring之间的关系

spring-boot-starter-web依赖了spring-webmvc,spring-webmvc又依赖了spring-beans、spring-core等spring底层组件,所以spring还是底层框架,springboot、springmvc只是上层的封装,

  1. Spring:

    • Spring是一款主流的Java EE开源框架,旨在简化Java企业级应用的开发难度和缩短开发周期。

    • 它提供了IoC(控制反转)和依赖注入原则,通过简化和模块化开发过程,帮助开发者构建灵活、可扩展和可维护的应用程序。

    • Spring框架包含多个模块,提供了IoC容器、AOP(面向切面编程)、JDBC、事务管理以及MVC框架等功能。

  2. Spring MVC:

    • Spring MVC是Spring框架中的一个模块,提供了一种MVC(Model-View-Controller)架构模式的实现,专门用于Web应用程序的开发。

    • 在Spring MVC中,模型代表应用程序的数据和业务逻辑,视图用于数据展示,而控制器负责处理用户请求并调用相应的业务逻辑。

    • Spring MVC提供了一套组件和注解,使得Web应用的构建过程结构清晰、灵活可扩展。它支持RESTful风格的URL映射、数据校验、文件上传等功能,并与Spring框架的其他模块无缝集成。

  3. SpringBoot:

    • SpringBoot是由Spring团队创建的一个框架,旨在简化Spring应用程序的开发过程。

    • 它基于“约定优于配置”的原则,通过自动配置和开箱即用的功能,大大简化了Spring应用的搭建和构建流程。

    • SpringBoot能够快速集成Spring的各个模块,并提供了诸如内嵌Servlet容器、自动化配置管理、健康检测等便利特性。

    • 重要的是,SpringBoot并不是用来替代Spring的新框架,而是与Spring框架紧密结合,用于提升开发者的体验。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【EI会议】2024年测绘、地质与遥感国际会议(SGRS 2024)

2024年测绘、地质与遥感国际会议 2024 International Conference on Surveying, Geology, and Remote Sensing 【1】会议简介 2024年测绘、地质与遥感国际会议,将于不久后隆重召开,这将是一场汇聚全球顶尖专家学者、探讨测绘、地质与遥感领域最新技术、发…

vue3项目+TypeScript前端项目 ———— elemnet-plus,svg图标配置,sass,mock数据

一.集成element-plus 官网地址 安装 pnpm install element-plus 引入 // main.ts import { createApp } from vue import ElementPlus from element-plus import element-plus/dist/index.css import App from ./App.vueconst app createApp(App)app.use(ElementPlus) app.…

Element表格之表头合并、行合并和列合并

el-table合并表头handerMethod_el-table表头合并-CSDN博客 Element表格之表头合并、行合并和列合并_element表格表头合并-CSDN博客 一、合并表头 话不多说,先看效果图: 表格结构如上,其中:header-cell-style对表头做了一些处理。 headFirst…

HTTPS:安全网络通信的基石

在数字化时代,网络通信的安全变得至关重要。HTTPS(超文本传输安全协议)是一种用于保护网络通信的协议,它通过加密技术确保数据传输的安全性和完整性。下面我们就来了解一下HTTPS。 一、HTTPS是什么? HTTPS是HTTP&…

【el-table 实现自定义单选】

el-table 实现自定义单选 示例图片代码 示例图片 代码 row-click"singleElection"<el-table-columnalign"center"label"选择"><template slot-scope"scope"><el-radio:key"scope.row.id"v-model"templa…

ChannelHandlerContext——ChannelHandler和ChannelPipeline之二

目录 ChannelHandlerContext接口 使用ChannelHandlerContext ChannelHandler和ChannelHandlerContext的高级用法 异常处理 处理入站异常 处理出站异常 本文继上文《ChannelHandler和ChannelPipeline之一》&#xff0c;接着讲ChannelHandlerContext接口。 ChannelHandlerC…

需求响应+配网重构!含高比例新能源和用户需求响应的配电网重构程序代码!

前言 配电网重构作为配电网优化运行的手段之一&#xff0c;通过改变配电网的拓扑结构&#xff0c;以达到降低网损、改善电压分布、提升系统的可靠性与经济性等目的。近年来&#xff0c;随着全球能源消耗快速增长以及环境的日趋恶化&#xff0c;清洁能源飞速发展&#xff0c;分…

超简单白话文机器学习 - 逐步回归Lasso,Ridge正则化(含算法讲解,公式全解,手写代码实现,调包实现)

1. 提高泛化能力 1.1 概念 正则化是一种在机器学习和统计建模中用于防止过拟合的技术。过拟合是指模型在训练数据上表现很好&#xff0c;但在未见过的测试数据或新数据上表现不佳。正则化通过在损失函数&#xff08;如最小二乘误差&#xff09;中添加一个惩罚项&#xff0c;限…

仓库管理WMS软件(Warehouse Management Software)百科解析

一、什么是仓库管理软件&#xff08;WMS&#xff09;&#xff1f; 仓库管理软件&#xff08;WMS&#xff09;全称Warehouse Management System&#xff0c;是一种专门用于仓库作业流程优化和库存控制的软件系统。它通过先进的自动识别与数据采集技术&#xff0c;实现对仓库货物…

Leecode热题100---114:二叉树展开为链表

题目&#xff1a; 给你二叉树的根结点 root &#xff0c;请你将它展开为一个单链表&#xff1a; 展开后的单链表应该同样使用 TreeNode &#xff0c;其中 right 子指针指向链表中下一个结点&#xff0c;而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同…

Spring Boot | Spring Boot 实现 “记住我“ 功能

目录: 一、SpringBoot 中 自定义 "用户授权管理" ( 总体内容介绍 )二、实现 "记住我" 功能 ( 通过 "HttpSecurity类" 的 rememberMe( )方法来实现 "记住我" 功能 ) :2.1 基于 "简单加密 Token" 的方式 ( 实现 "记住我&…

av_dump_format经验分析,FFmpeg获取媒体文件总时长(FLV获取总时长的误区)

播放器有个功能&#xff0c;当用户打开视频时&#xff0c;需要读取媒体文件的总时长等信息&#xff0c;不巧的时&#xff0c;获取FLV时总失败&#xff0c;下面来具体分析下FLV和MP4获取总时长的原因和区别&#xff1a; 播放器有个获取MediaInfo的接口&#xff0c;功能如下&am…

echarts全局设置饼图的颜色

&#x1f337;第一步 在js文件中写入你需要的颜色 这里的颜色也可以写渐变的 &#x1f337;下一步 在main.is中引用全局挂载 &#x1f337;最后一步 在初始化的时候加一个macarons即可 &#x1f337;第一步 在js文件中写入你需要的颜色 这里的颜色也可以写渐变的 (functi…

探索k8s集群中kubectl的陈述式资源管理

一、k8s集群资源管理方式分类 1.1陈述式资源管理方式&#xff1a;增删查比较方便&#xff0c;但是改非常不方便 使用一条kubectl命令和参数选项来实现资源对象管理操作 即通过命令的方式来实 1.2声明式资源管理方式&#xff1a;yaml文件管理 使用yaml配置文件或者json配置文…

【研发日记】嵌入式处理器技能解锁(一)——多任务异步执行调度的三种方法

文章目录 前言 Timer中断调度 Event中断调度 StateFlow调度 分析和应用 总结 参考资料 前言 近期在一些嵌入式系统开发项目中&#xff0c;在使用嵌入式处理器时&#xff0c;遇到了挺多费时费力的事情。所以利用晚上和周末时间&#xff0c;在这些方面深入研究了一下&…

Joomla 3.7.0 (CVE-2017-8917) SQL注入漏洞环境

1 漏洞概述 Joomla是一个基于PHP的内容管理系统&#xff08;CMS&#xff09;&#xff0c;广泛应用于各类网站。2017年&#xff0c;Joomla 3.7.0版本被发现存在SQL注入漏洞&#xff08;CVE-2017-8917&#xff09;&#xff0c;攻击者可以利用该漏洞对数据库进行未授权查询或操作…

The Sandbox 和 Bitkub 联手增强东南亚元宇宙中心

作为去中心化游戏虚拟世界和区块链平台的先驱&#xff0c;The Sandbox 正与泰国领先的区块链网络 Bitkub Blockchain Technology Co., Ltd. 展开创新合作。双方合作的目的是将Bitkub元宇宙的影响力扩展到The Sandbox&#xff0c;建立一个元宇宙中心&#xff0c;向用户承诺从 Bi…

C# GetManifestResourceStream 获取项目资源为null解决方案(亲测)

GetManifestResourceStream 获取项目资源为null 使用Stream s assembly.GetManifestResourceStream(Assembly.GetExecutingAssembly().GetName().Name resourceName) 获取资源文件&#xff0c;返回流为null&#xff0c;如图所示&#xff1a; 解决方案 设置资源文件的 属性&…

<MySQL> 【数据类型】

目录 一、数据类型一览 二、整型 &#xff08;一&#xff09;INT &#xff08;二&#xff09;BIT 三、浮点数 &#xff08;一&#xff09;FLOAT &#xff08;二&#xff09;DECIMAL &#xff08;三&#xff09;如何选择 四、字符 &#xff08;一&#xff09;CHAR &a…

超简单白话文机器学习 - 支持向量机SVM(含算法讲解,公式全解,手写代码实现,调包实现)

1. 支持向量机SVM 支持向量机&#xff0c;因其英文名为support vector machine&#xff0c;故一般简称SVM&#xff0c;通俗来讲&#xff0c;它是一种二类分类模型&#xff0c;其基本模型定义为特征空间上的间隔最大的线性分类器&#xff0c;其学习策略便是间隔最大化&#xff…