【SpringBoot】简介及传统的 Spring 框架:对比和分析

这篇具有很好参考价值的文章主要介绍了【SpringBoot】简介及传统的 Spring 框架:对比和分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

 哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ  【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java


今天给大家带来的是 SpringBoot 的简介,SpringBoot 项目的创建,相较于 Spring 框架的优点: 1. 快速的集成框架  2.内置运行容器, 快速的部署项目 3. 摒弃繁琐的 xml,使用注解和配置的方式进行开发。4. 支持更多的监控的指标,本文将为大家讲解,一起来看看叭~


本期收录于博主的专栏:JavaEE_保护小周ღ的博客-CSDN博客

适用于编程初学者,感兴趣的朋友们可以订阅,查看其它 “JavaEE基础知识”。

更多精彩敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★* ‘

一、SpringBoot 简介

SpringBoot 的由来可以追溯到 Spring 框架。Spring 是一个非常流行的开源 Java 框架,用于构建企业级应用程序。然而,使用 Spring 框架开发传统的 Java 应用程序需要进行繁琐的配置,并且部署也需要额外的手动操作。

为了简化 Spring 应用程序的开发和部署过程,SpringBoot 在2013年由 Pivotal 团队推出(与Spring 并不是同一团队)。它的目标是通过提供一系列的自动配置、快速启动、内嵌服务器和起步依赖项等功能,使得开发者可以更轻松地创建和部署 Spring 应用程序。

SpringBoot 的设计理念是 “约定大于配置” 的方式来提高开发效率。它采用了一套预定义的规则和约定,根据项目的依赖和类路径进行自动配置,大部分情况下无需手动配置。开发者只需要关注业务逻辑的实现而不必浪费时间在繁琐的配置上。

Spring 的诞生是为了简化 Java 应用程序的开发,而 SpringBoot 的诞生是为了简化 Spring 程序的开发,SpringBoot 是为了快速的开发 Spring 框架而诞生的。

例如:Spring 割稻谷【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

SpringBoot 割稻谷【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

也是很鲜明的对比,技术的更新迭代嘛,新的技术相较于之前的技术在效率方面肯定有一些提升。


二、SpringBoot 的优点

优点建立在Spring 框架的基础之上~

2.1 快速的集成框架:

我们想要创建 Spring 项目,最常用的一个做法是先创建一个Maven 项目,然后从 Maven 中央仓库中获取 Spring 的依赖(Spring 属于第三方开源框架),注入到 pom.xml 配置文件中。

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

将一些都做好了之后,我们可能还需添加一些其他第三方依赖,例如:JDBC (数据库),一些工具依赖 lombok 等等,不知道细心的朋友发现了没,我们添加的各种依赖都有一个版本号,如果这些第三方依赖彼此之间版本不兼容,如果我们使用了这些依赖,可能会导致程序无法启动,或者是一些功能的瘫痪。

所以创建Spring 项目,我们需要添加相关依赖,需要注意依赖的版本之间是否兼容!!!


 2.1.1 SpringBoot 的创建

如果我们使用的 IDEA 的社区版,要先安装Spring Boot Helper 插件(这个插件在社区版 2022 之前才免费,之后的版本需要收费的)才能创建  SpringBoot 项目。

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

 安装好之后,它的名字就变成了 Spring Initializr and Assistant:

 【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

 然后我们使用 IDEA 创建项目的时候就可以使用该插件创建~

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

注意选择你本机上安装的 JDK 的版本

点击next 后:

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java 点击 Finish 就完成 Spring Boot 的项目创建了.


我们也可以不使用 IDEA 创建SpringBoot 项目,使用 Spring官网提供的网页版本来创建 SpringBoot项目,或者 阿里提供的网页版创建项目

网页版创建路径:https://start.spring.io
网页版创建好项目后,会得到一个 SpringBoot 的zip 压缩包,解压后使用 Idea 打开后也可以直接使用项目,注意网页创建项目的时候需要选择的JDK适配 与本机的JDK 版本适配。


我们使用 IDEA 创建一个 SpringBoot 项目感觉过程非常的繁琐,但这些流程全部都是必要的,没有一丝的拖泥带水,最最最关键的是SpringBoot 可以帮我们根据 SpringBoot 的版本去适配其他的第三方框架(依赖)的版本这是他的优点,可以快速的集成框架。


2.2 内置运行容器, 快速的部署项目

SpringBoot内置了多种容器,可以根据需要选择合适的容器。以下是Spring Boot内置的容器:

  1. Tomcat(默认):Spring Boot默认使用的容器是Apache Tomcat。Tomcat是一个轻量级的Java Web(HTTP)服务器,以及一个Servlet容器。Spring Boot会自动配置Tomcat作为默认的内置容器。

  2. Jetty:Spring Boot也支持使用Jetty作为内置容器。Jetty是另一个流行的Java Web服务器和Servlet容器。可以通过在pom.xml文件中添加jetty依赖来切换至Jetty容器。

  3. Undertow:另一个可选的内置容器是Undertow。Undertow是一个轻量级的高性能Web服务器,由JBoss开发。可以通过在pom.xml文件中添加undertow依赖来切换至Undertow容器。

可以通过在Spring Boot的配置文件(application.properties或application.yml)中设置相关属性来配置使用的内置容器。例如,可以设置server.port属性来指定监听的端口号。

需要注意的是,SpringBoot也支持通过外部容器部署应用程序,例如使用独立的Tomcat或Jetty服务器来承载应用程序。这样做可以提供更灵活的部署和扩展选项。

Java在运行部署这一块Tomcat 使用的是最多的,他是用Java代码写的 HTTP 协议的服务器,JavaWeb 这一块是靠这些内置容器提供 API 对HTTP 协议数据报进行处理。

像Servlet 项目就需要我们手动去配置一个外置的 Tomcat 然后将项目打包部署到容器中。在项目部署的时候我们同样也需要安装一个 Tomcat 到服务器上,而 SpringBoot 项目内部集成了 Tomcat ,所以我们就可以做到快速的部署项目,无需外部容器即可启动。


2.3 摒弃繁琐的 xml,使用注解和配置的方式进行开发。

Spring 在启动时需要根据 Spring配置文件(.xml)中配置的包路径扫描包中的那些类被注解注释了,然后将这些被注释的类实例(Bean对象)到 Spring 容器中。

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

而SpringBoot 项目,当我们把要注⼊到容器类和启动类放到同级目录下时:

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

这个时候当项目启动时才能扫描注解修饰的类,将Bean 对象注入到容器中。

对比 Spring 项目我们就可以直观的看到区别,Spring 中需要配置 Bean 对象的包扫描路径,而SpringBoot 不用(约定大于配置)。我们在做大项目的时候,目录是有很多的,如果都是用 xml 文件配置路径,是非常繁琐的操作。

SpringBoot 还有一个优点就是有配置文件,自动装配,这个跟Spring 自动装配不是一个概念,Boot 项目启动时,可以从配置文件中读取类实例所需的第三方数据!!

举个例子,创建Mysql 数据库对象—— datasource

常规的做法是我们手动配置数据源:

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

这意味着写死了,因为我们将项目打包部署,生成的是字节码文件(.class 二进制),如果我们实际的运行环境跟我们项目中的数据不适配,本地调试的数据库跟服务器上的数据库那是两个不同的用户名,密码,不一定一样(本地能跑,服务器上跑不了,需要调试,或者因为服务器上的某些数据要被修改(账户,密码),但是对于我们的字节码文件来说,修改不了,程序自然就无法运行,还得返工,让开发人员重新调整然后打包部署,这个操作就非常的麻烦。

而SpringBoot 项目创建一个Mysql数据源就先从配置文件中读取相关信息,然后帮我们生成一个 Mysql 的数据源,这意味着,文件是可以随时修改得,类在实例时,所依赖的关键数据可以变化的。

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

包括端口号,本地默认是 8080,成产环境的服务器 8080 端口可能被占用了,这种情况下我们也可在配置文件中修改应用程序的端口号,这些都是 SpringBoot 项目的优点。

当然普通的项目中,我们也可以创建一个配置文件,利用 IO 流来读取相关信息,说白了,增加了类的复杂度,程序猿的代码需要框框写,奈何 SpringBoot 是自带的呢,而且配合注解使用就可以读取啦。SpringBoot 配置文件是非常强大的嘞,详细内容请听下回揭晓~


2.4  支持更多的监控的指标

SpringBoot提供了一些内置的监控指标,可以通过集成的监控工具或者自定义指标来获取更多信息。下面是一些SpringBoot支持的监控指标的示例:

  1. 健康指标(Health Indicators):用于检查应用程序的健康状况,包括内存使用、数据库连接状态等。

  2. 内存指标(Memory Metrics):跟踪应用程序的内存使用情况,包括堆内存使用量、非堆内存使用量等。

  3. CPU指标(CPU Metrics):监控应用程序在处理请求时的处理器使用率。

  4. 线程指标(Thread Metrics):跟踪应用程序的线程池使用情况,以及活动线程的数量等。

  5. 请求统计指标(Request Metrics):监控应用程序的请求处理情况,如请求的数量、平均响应时间等。

  6. 数据库指标(Database Metrics):用于跟踪应用程序与数据库之间的交互情况,如查询执行时间、连接池使用情况等。

  7. 日志指标(Log Metrics):跟踪应用程序的日志输出情况,如日志级别、日志条目数量等。

  8. 缓存指标(Cache Metrics):监控应用程序的缓存使用情况,如缓存命中率、缓存清除次数等。

这些指标可以方便地通过Spring Actuator模块来进行监控和暴露,也可以选择使用自带的监控工具或者结合第三方监控工具进行监控和分析。

以上我们最常用的是日志,项目在运行的过程中遇到的那些问题,通常在日志中就可以体现出来,日志的内容和级别是撒时候记录可以由程序员自己决定。

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

 关于日志的相关操作我也会在后期的文章当中给大家讲述……


好了,到这里,【SpringBoot】简介及传统的 Spring 框架:对比和分析 博主已经分享完了,希望对大家有所帮助,如有不妥之处欢迎批评指正。 

【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java

下期预告:【SpringBoot】日志、【SpringBoot】配置文件

感谢每一位观看本篇文章的朋友,更多精彩敬请期待:保护小周ღ *★,°*:.☆( ̄▽ ̄)/$:*.°★* 

遇见你,所有的星星都落在我的头上……【SpringBoot】简介及传统的 Spring 框架:对比和分析,JavaEE,spring boot,后端,java文章来源地址https://www.toymoban.com/news/detail-607179.html

到了这里,关于【SpringBoot】简介及传统的 Spring 框架:对比和分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【JavaEE & Spring】SpringBoot 日志

    为什么要学习日志 对于平常来说, 我们就在使⽤ System.out.print 来打印⽇志了 随着项⽬的复杂度提升, 我们对⽇志的打印也有了更⾼的需求, ⽽不仅仅是定位排查问题. 有时候我们需要将日志持久化, 进行对应的数据分析, 但是 System.out.print 不能很好的满⾜我们的需求, 我们就需要

    2024年01月25日
    浏览(39)
  • 【JavaEE & Spring】SpringBoot 配置文件

    计算机上有数以千计的配置文件, 使用软件和硬件等都需要有配置文件,在C盘中存在; 配置文件主要是为了解决硬编码带来的问题,把可能发生改变的信息,放在一个集中的地方,当我们启动某个程序时,应用程序从配置文件中读取数据,并加载运行。 SpringBoot 支持并定义了

    2024年01月21日
    浏览(56)
  • 【玩转 TableAgent 数据智能分析】基于TableAgent实现IT职位招聘数据分析—以传统机器学习与TableAgent 数据分析方式相对比以凸显TableAgent 特性

    目录 🚀一.  TableAgent—新AI时代的数据分析智能体 🔎1.1 基于DataCanvas Alaya九章元识大模型 🔎1.2 TableAgent的亮点 🚀二. 使用TableAgent分析数据与传统机器学习分析数据对比 🔎2.1 项目背景 🔎2.2 数据准备 🦋2.3 对于现有Go语言岗位城市可视化数据分析 🦋2.3.1 使用TableAge

    2024年02月03日
    浏览(48)
  • 传统DNS、负载均衡服务发现框架与专业服务发现框架(Eurek、nacos)分析

    DNS 服务器可以在一定程度上用作服务发现的机制,以下是其冲动服务发现的一些利弊 优势 广泛性 : DNS是互联网的标准协议之一,已经广泛地被支持和使用。因此,使用DNS作为服务发现的机制可以借助现有的网络基础设施,无需引入新的工具。 简单性 : DNS的域名解析机制

    2024年02月12日
    浏览(38)
  • CloudNative:云原生(分布式云)的简介(发展&演变/为什么需要/优势&价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略

    CloudNative:云原生(分布式云)的简介(发展演变/为什么需要/优势价值/安全/对比传统企业应用)、四大核心技术、CNCF云原生交互景观、云原生技术的使用经验及方法之详细攻略 导读 :从“ 软件正在吞噬世界 ”到“ 开源正在吞噬软件 ”,到如今“ 云原生吞噬开源 ”,开源项目

    2023年04月16日
    浏览(218)
  • 038-安全开发-JavaEE应用&SpringBoot框架&MyBatis注入&Thymeleaf模版

    1、JavaEE-SpringBoot-WebAPP路由 2、JavaEE-SpringBoot-Mybatis注入 3、JavaEE-SpringBoot-ThymeleafSSTI 演示案例: ➢SpringBoot-Web应用-路由响应 ➢SpringBoot-数据库应用-Mybatis ➢SpringBoot-模版引擎-Thymeleaf Spring Boot是由Pivotal团队提供的一套 开源框架 ,可以简化spring应用的创建及部署。它提供了丰富的

    2024年03月09日
    浏览(37)
  • 【JavaEE】面向切面编程AOP是什么-Spring AOP框架的基本使用

    【JavaEE】 AOP(1) 1.1 AOP 与 Spring AOP AOP ( A spect O riented P rogramming),是一种思想,即 面向切面编程 Spring AOP 则是一个框架,Spring项目中需要引入依赖而使用 AOP和Spring AOP的关系就相当于IoC和DI Spring AOP让开发者能够半自动的开发AOP思想下实现的功能 1.2 没有AOP的世界是怎样的

    2024年02月11日
    浏览(47)
  • 【JavaEE】让“单车变摩托”的神级框架—Spring MVC的深入讲解

    【JavaEE】Spring MVC 程序开发要点总结 官方文档:Spring Framework Documentation :: Spring Framework Spring Web MVC 是基于 Servlet API 构建的原始Web 框架,从一开始就包含在Spring 框架中。它的正式名称“Spring Web MVC” 来自其源模块的名称(Spring-webmvc),但它通常被称为“Spring MVC” 两个关键信

    2024年02月13日
    浏览(47)
  • SSM框架和SpringBoot框架的对比

    区别: 1、在开发中,虽然springboot简化了配置,但只不过是编写的方式变得简单了,和SSM整合的方式还是有些差异; 2、使用SSM开发时,多数会选择Jsp作为视图,但是springboot不推荐使用jsp。 Springboot 和ssm的关系 springboot 和ssm不冲突 , springboot只是简化了配置 , 实际开发 没什么

    2024年02月08日
    浏览(29)
  • 【Spring框架一】——Spring框架简介

    Spring框架最初是由Rod Johnson在2002年创建的,其主要目的是为了解决企业应用程序开发中面临的一些常见问题。下面主要是对于Spring框架的介绍包括什么是Spring框架?Spring框架解决了什么问题?Spring与Spring boot和Spring cloud的关系 Spring是基于Java语言开发的开源框架,用于构建企业

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包