spring boot概述

news2024/12/28 22:17:41

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。

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

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

相关文章

“祖传代码“的是是非非

程序员眼中的“祖传代码”,就像一本古老而神秘的魔法书,藏着无穷的智慧和技巧,有些代码像家传宝贝,有些像祖传秘方。快来分享一下你遇到的“祖传代码”吧~ 祖传代码的历史与文化价值 祖传代码通常指的是经过长时间使用和传承的代…

Linux操作系统——进程信号

1.信号的概念 生活当中哪些场景算信号呢?比如说你晚上调了个闹钟,然后第二天早上你听到了闹钟响了你就知道该起床了,这种机制就叫做信号机制。在生活中我们的信号是非常非常多的,比如说有:红绿灯,下课铃声…

网络编程作业day3

项目作业1&#xff1a;TCP机械臂测试 客户端操作代码&#xff1a; /*机械臂客户端控制代码*/ #include <myhead.h>#define SER_IP "192.168.125.176" //机械臂服务器IP地址 #define SER_PORT 8888 //机械臂服务器端口号 #define CLI_IP "…

代码随想录算法训练营第35天 | 435. 无重叠区间 ,763.划分字母区间 , 56. 合并区间

贪心算法章节理论基础&#xff1a; https://programmercarl.com/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 435. 无重叠区间 题目链接&#xff1a;https://leetcode.cn/problems/non-overlapping-intervals/ 思路&#xff1a; 相信…

理疗美容按摩小程序有哪些功能

医疗、美容和按摩等行业是一个快速发展的领域&#xff0c;很多美容院和理疗中心都希望通过小程序来提升服务质量和用户体验。下面我们来看看一个理疗美容小程序可以具备哪些功能&#xff0c;并介绍如何使用这些功能。 1. **在线预约服务**&#xff1a;用户可以通过小程序预约理…

第8章:Nginx与Web应用《Nginx实战:从入门到精通》

Nginx不仅仅是一个高效的静态内容服务器和反向代理服务器&#xff0c;它还能与各种流行的Web应用框架和语言环境无缝集成&#xff0c;从而提供强大的动态内容处理能力。在本章中&#xff0c;我们将深入探讨Nginx如何与PHP、Python、Ruby和Node.js等常见的Web应用和语言环境协同…

爬虫入门到精通_实战篇10(使用Redis+Flask维护动态代理池)

1 目标 为什么要用代理池 许多网站有专门的反爬虫措施&#xff0c;可能遇到封IP等问题。互联网上公开了大量免费代理&#xff0c;利用好资源。通过定时的检测维护同样可以得到多个可用代理。 代理池的要求 多站抓取&#xff0c;异步检测定时筛选&#xff0c;持续更新提供接…

【大厂AI课学习笔记NO.56】(9)模型评测

作者简介&#xff1a;giszz&#xff0c;腾讯云人工智能从业者TCA认证&#xff0c;信息系统项目管理师。 博客地址&#xff1a;https://giszz.blog.csdn.net 声明&#xff1a;本学习笔记来自腾讯云人工智能课程&#xff0c;叠加作者查阅的背景资料、延伸阅读信息&#xff0c;及学…

数字化转型导师坚鹏:BLM金融机构数字化转型战略工作坊

BLM金融机构数字化转型战略工作坊 ——以BLM模型为核心&#xff0c;实现知行果合一 课程背景&#xff1a; 很多金融机构存在以下问题&#xff1a; 不知道如何系统地制定金融机构数字化转型战略&#xff1f; 不清楚其它金融机构数字化转型战略是如何制定的&#xff1f; …

动态IP代理技术在网络爬虫中的实际使用

目录 前言 一、什么是动态IP代理技术&#xff1f; 二、动态IP代理技术的实际使用 1. 获取代理IP地址 2. 在网络爬虫中设置代理 3. 周期性更换代理 结论 前言 网络爬虫是一种通过自动化程序从互联网上获取数据的技术。然而&#xff0c;由于某些网站对爬虫进行限制&#…

No matching version found for @babel/traverse@^7.24.0.

问题&#xff1a; npm安装 依赖失败&#xff0c;找不到所需依赖。 原因&#xff1a; npm镜像源中没有该依赖。&#xff08;大概率是因为依赖最近刚更新&#xff0c;当前镜像源没有同步&#xff09; 解决&#xff1a; 查看自己的npm镜像&#xff1a;npm config get registry…

史上最细,企业性能测试步骤详细,测试老鸟带你一篇打通!

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、性能测试流程 …

nodejs,JSDOM 补 window环境

window[atob] 是一个在浏览器中使用的 JavaScript 函数&#xff0c;用于将 base64 编码的字符串解码为原始数据。具体来说&#xff0c;atob 函数会将 base64 字符串解码为一个 DOMString&#xff0c;其中包含解码后的二进制数据。这在处理从服务器获取的 base64 编码的数据或在…

[Vulnhub]靶场 Red

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 …

带你从Spark官网啃透Spark Structured Streaming

By 远方时光原创&#xff0c;可转载&#xff0c;open 合作微信公众号&#xff1a;大数据左右手 本文是基于spark官网结构化流解读 Structured Streaming Programming Guide - Spark 3.5.1 Documentation (apache.org) spark官网对结构化流解释 我浓缩了一些关键信息&#xff…

LCR 134. Pow(x, n)

解题思路&#xff1a; 分治 快速幂 Java中向下取整n/2即可 需要结合下图理解&#xff0c;算法就是实现的该过程 class Solution {public double myPow(double x, int n) {if(x 0.0f) return 0.0d;long b n;double res 1.0;//例如:2^-5(1/2)^5if(b < 0) {x 1 / x;b -b…

嵌入式中很多MCU公司,为什么都是仿STM32?

做了单片机开发十多年了&#xff0c;STM32是我用过的单片机里面&#xff0c;最省心的。 用STM32做过的产品&#xff0c;至少10几个以上了。 其实不仅仅是STM32&#xff0c;还有STM8系列&#xff0c;也很稳。 我们无际单片机特训营好几个项目&#xff0c;都用了STM8和STM32系…

挂耳式蓝牙耳机性价比推荐,六大必备选购策略全揭秘!

生活水平的提升往往伴随着个人素质的增长。在公共场合&#xff0c;越来越多的人选择佩戴耳机&#xff0c;以避免打扰他人&#xff0c;同时也追求个人的舒适体验。挂耳式蓝牙耳机因其独特的设计成为了新宠。这类耳机不压迫耳道&#xff0c;提供自然的声音体验&#xff0c;同时确…

【卡尔曼滤波】图文结合带你详细推导卡尔曼滤波(超详解)

大家好&#xff0c;好久不见&#xff0c;我是小政。读研期间&#xff0c;我的研究方向是协作定位&#xff0c;涉及到多机器人分布式融合&#xff0c;主要用到了卡尔曼滤波&#xff0c;CI融合等概念。卡尔曼滤波我也是研究了很久&#xff0c;一直在思考的问题就是&#xff0c;卡…

Chat GPT:AI聊天机器人的革命性突破!

一、引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;技术的发展日新月异&#xff0c;其中最具代表性的成果之一便是Chat GPT。这款基于自然语言处理&#xff08;NLP&#xff09;技术的聊天机器人&#xff0c;以其高度智能、灵活多变的特点&#xff0c;迅速吸引了全…