spring boot概述

f1412fa703b64fdaa61e7302b94ba477.jpg

 

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。

 

该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

 

通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

 

SpringBoot简介

SpringBoot是Spring家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程,也可以说SpringBoot能简化我们之前采用SpringMVC + Spring + MyBatis框架进行开发的过程。 在以往我们采用SpringMVC + Spring + MyBatis框架进行开发的时候,搭建和整合三大框架,我们需要做很多工作,比如配置web.xml,配置Spring,配置MyBatis,并将它们整合在一起等,而SpringBoot框架对此开发过程进行了革命性的颠覆,完全抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程。 所以采用SpringBoot可以非常容易和快速地创建基于Spring框架的应用程序,它让编码变简单了,配置变简单了,部署变简单了,监控变简单了。正因为 SpringBoot 它化繁为简,让开发变得极其简单和快速,所以在业界备受关注。

 

SpringBoot的特性

● 能够快速创建基于Spring的应用程序

● 能够直接使用java main方法启动内嵌的Tomcat服务器运行SpringBoot程序,不需要部署war包文件

● 提供约定的starter POM来简化Maven配置,让Maven的配置变得简单

● 自动化配置,根据项目的Maven依赖配置,Springboot自动配置Spring、Spring mvc等

● 提供了程序的健康检查等功能

● 基本可以完全不使用XML配置文件,采用注解配置

 

SpringBoot四大核心

● 自动配置 针对很多Spring应用程序和常见的应用功能,SpringBoot能自动提供相关配置

● 起步依赖 告诉SpringBoot需要什么功能,它就能引入需要的依赖库

● Actuator 让你能够深入运行中的SpringBoot应用程序,一探SpringBoot程序的内部信息

● 命令行界面 这是SpringBoot的可选特性,主要针对Groovy语言使用; Groovy是一种基于JVM(Java虚拟机) 的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与Java代码很好地结合,也能用于扩展现有代码,由于其运行在JVM上的特性,Groovy可以使用其他Java语言编写的库。

 

SpringBoot开发版本推荐

● Springboot目前分为两大版本系列,1.x系列和2.x系列

● 如果是使用eclipse,推荐安装Spring Tool Suite (STS)插件

● 如果使用IDEA旗舰版,自带了SpringBoot插件

● 推荐使用Maven 3.3+,Maven目前最新版本为3.6.0(2019.01)

● 推荐使用Java 8,SpringBoot 1.x系列的版本兼容Java 6,SpringBoot 2.x系列需要至少Java8

 

SpringBoot重要策略

SpringBoot框架中还有两个非常重要的策略:开箱即用和约定优于配置。

 

开箱即用,Outofbox,是指在开发过程中,通过在MAVEN项目的pom文件中添加相关依赖包,然后使用对应注解来代替繁琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,更加专注于业务逻辑。

 

约定优于配置,Convention over configuration,是一种由SpringBoot本身来配置目标结构,由开发者在结构中添加信息的软件设计范式。

 

这一特点虽降低了部分灵活性,增加了BUG定位的复杂性,但减少了开发人员需要做出决定的数量,同时减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。

 

SpringBoot应用系统开发模板的基本架构设计从前端到后台进行说明:

 

前端常使用模板引擎,主要有FreeMarker和Thymeleaf,它们都是用Java语言编写的,渲染模板并输出相应文本,使得界面的设计与应用的逻辑分离,同时前端开发还会使用到Bootstrap、AngularJS、JQuery等;

 

在浏览器的数据传输格式上采用Json,非xml,同时提供RESTfulAPI;

 

SpringMVC框架用于数据到达服务器后处理请求;

 

到数据访问层主要有Hibernate、MyBatis、JPA等持久层框架;数据库常用MySQL;开发工具推荐IntelliJIDEA。

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

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

相关文章

【Python】进阶学习:pandas--read_excel()函数的基本使用

【Python】进阶学习:pandas–read_excel()函数的基本使用 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希…

C++ 模拟OJ

目录 1、1576. 替换所有的问号 2、 495. 提莫攻击 3、6. Z 字形变换 4、38. 外观数列 5、 1419. 数青蛙 1、1576. 替换所有的问号 思路:分情况讨论 ?zs:左边没有元素,则仅需保证替换元素与右侧不相等;z?s:左右都…

2024年【起重机械指挥】考试及起重机械指挥考试报名

题库来源:安全生产模拟考试一点通公众号小程序 起重机械指挥考试是安全生产模拟考试一点通总题库中生成的一套起重机械指挥考试报名,安全生产模拟考试一点通上起重机械指挥作业手机同步练习。2024年【起重机械指挥】考试及起重机械指挥考试报名 1、【多…

行列式错题本

《1800》 1 阶数和转置 A是三阶,B是4阶,还有2这个系数 2 怎么啥也不会呀,委屈 行列式的拆分+提取系数 3

【NR 定位】3GPP NR Positioning 5G定位标准解读(四)

目录 前言 6 Signalling protocols and interfaces 6.1 支持定位操作的网络接口 6.1.1 通用LCS控制平面架构 6.1.2 NR-Uu接口 6.1.3 LTE-Uu接口 6.1.4 NG-C接口 6.1.5 NL1接口 6.1.6 F1接口 6.1.7 NR PC5接口 6.2 终端协议 6.2.1 LTE定位协议(LPP&#x…

机器学习模型总结

多元线性回归(linear regression) 自变量:连续型数据,因变量:连续型数据 选自:周志华老师《机器学习》P53-55 思想:残差平方和达到最小时的关系式子即为所求,残差平方和&#xff1a…

考研英语语法(句子成分)

目录 1.主句的成分: 2.化妆后句子的成分: 3.句子的基本结构: 4.句子成分表 5.复杂句型总结 1.并列句(是由并列连词连接两个或两个以上的句子,用逗号隔开) 2.名词性从句(名词在句中充当成…

加密与安全_探索常用编码算法

文章目录 概述什么是编码编码分类ASCII码 (最多只能有128个字符)Code: 字符转换成ascii码ASCII码对照表 Unicode (用于表示世界上几乎所有的文字和符号)URL编码 (解决服务器只能识别ASCII字符的问题&#x…

【数据结构】复杂度详解

目录 (一)算法的复杂度 (二)时间复杂度 (1)练笔解释: i,示例1 ii,示例2 iii,二分查找 iv,斐波那契 (三)空间复杂度…

带使能控制的锂电池充放电解决方案

一、产品概述 TP4594R 是一款集成线性充电管理、同步升压转换、电池电量指示和多种保护功能的单芯片电源管理 SOC,为锂电池的充放电提供完整的单芯片电源解决方案。 TP4594R 内部集成了线性充电管理模块、同步升压放电管理模块、电量检测与 LED 指示模块、保护模块…

企业指标体系建设与管理:运用MECE原则与战略地图,打造完美闭环

在数字化时代,数据已经成为企业的核心资产。为了更好地利用这些数据,企业需要建立一套科学、完整、高效的指标体系。而在这个过程中,MECE原则(Mutually Exclusive, Collectively Exhaustive,即“相互独立,完…

day04-Maven-SpringBootWeb入门

文章目录 01. Maven1.1 课程安排1.2 什么是Maven1.3 Maven的作用1.4 Maven模型1.5 Maven仓库1.6 Maven安装1.6.1 下载1.6.2 安装步骤 2 IDEA集成Maven2.1 配置Maven环境2.1.1 当前工程设置2.1.2 全局设置 2.2 创建Maven项目2.3 POM配置详解2.4 Maven坐标详解2.5 导入Maven项目 …

探索Ubuntu命令行:常见问题与解决方案

一、引言 Ubuntu,作为一款流行的Linux发行版,其命令行界面(CLI)为用户提供了丰富的功能和灵活性。然而,对于新手来说,命令行可能会带来一些挑战。本文将探讨一些在使用Ubuntu命令行时可能遇到的问题及其解决…

#QT(DEMO)

1.IDE:QTCreator 2.实验:打印"hello wolrd" 3.记录 (1)创建一个新工程: 新建好一个工程存放文件夹(路径不能有中文),然后按下图配置 (2)点击widgets.ui拖入以…

数学建模【多元线性回归模型】

一、多元线性回归模型简介 回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想来解决。回归分析的任务就是,通过研究自变量X和因变量Y的相关关系,尝试去解释Y的形成机制,进…

一篇了解电阻的使用

目录 一、电阻理论基础 1.电阻的定义 2.欧姆定律 3.电阻决定式 4.电阻的串并联​编辑 5.电阻的功率 6.温度对电阻的影响 二、电阻的选型 1.安装方式 2.电阻值 (1)电阻值的标称 (2)电阻值的确定 (3&#x…

图片上的物品怎么抠出来?这三种方法教你快速消除

怎么把图片上的物品抠出来?这是一个在设计、摄影和后期制作中经常遇到的问题。在很多设计项目中,我们可能需要从一张图片中扣出某个物品,以便在其他背景中使用,或者将其与其他图像组合在一起。今天,我们就来分享三种常…

力扣刷题记录--463. 岛屿的周长

题目链接&#xff1a;463. 岛屿的周长 - 力扣&#xff08;LeetCode&#xff09; 题目描述 我的代码实现 class Solution {public int islandPerimeter(int[][] grid) { int result0; int rowgrid.length; int colgrid[0].length; for(int i0;i<row;i){for(int j0;j<col…

FPGA时序约束与分析--数据到达路径和数据需求路径

文章目录 前言一、定义二、时序模型三、公式推导前言 时序约束的定义–设计者根据实际的系统功能,通过时序约束的方式提出时序要求; FPGA 编译工具根据设计者的时序要求,进行布局布线;编译完成后, FPGA 编译工具还需要针对布局布线的结果,套用特定的时序模型( FPGA 器件…

Git 初试 安装

Git初识 遇到问题&#xff1a; 在生活和学习中&#xff0c;我们会遇到这样的问题&#xff0c;比如上交论文的时候&#xff0c;老师让你改了一遍又一遍&#xff0c;结果改到最后一版的时候&#xff0c;说你这个还不如你第一版的或者前几版的&#xff0c;老师又说&#xff0c;把…