首页 > 其他分享 >浅谈一下对SpringBoot的理解

浅谈一下对SpringBoot的理解

时间:2023-12-14 15:00:38浏览次数:31  
标签:JAR 依赖 浅谈 Spring 配置 Boot 应用程序 理解 SpringBoot

简化Spring + SpringMVC的开发

1. Maven 导入依赖 Starter

  • 依赖管理:Spring Boot 的 Starter 依赖简化了项目的依赖管理。通过导入预配置的 Starter 依赖,开发者可以轻松地引入一组相关的库和配置,而无需手动管理每个库的版本和依赖关系。
  • 约定大于配置:使用 Starter 依赖遵循了 Spring Boot 的设计原则,即约定大于配置。这种方式促使了项目的标准化,减少了在配置上的差异,提高了项目的可维护性。
  • 快速搭建项目:通过 Maven 导入 Starter 依赖,可以迅速搭建一个基于 Spring Boot 的项目,减少了从零开始构建项目的时间和工作量。

2. 简化冗余配置

  • 自动配置:Spring Boot 的自动配置机制消除了大量的冗余配置。根据项目的依赖和条件,Spring Boot 会自动配置项目中的各种组件,使得开发者不再需要手动编写冗长的配置文件。
  • 默认值和约定:Spring Boot 提供了合理的默认配置和约定,减少了在配置中需要显式指定的情况。这有助于项目更快速地启动,并且使得配置文件更加简洁。
  • 注解和属性文件:Spring Boot 大量使用注解和属性文件,使得配置信息更易读、易维护,减少了冗余的 XML 配置。开发者可以通过简单的注解或属性文件就能完成很多配置,而无需编写大量的代码。
  • 可扩展性:尽管 Spring Boot 提供了很多自动配置,但仍然保留了足够的灵活性,允许开发者根据实际需求进行自定义配置。这样既简化了配置,又保留了可扩展性。

3. 内嵌 Tomcat

a. Spring MVC 父子容器

  • 在传统的 Spring MVC 应用中,通常有一个父容器(Root Context)和一个子容器(Servlet Context)。父容器负责管理应用程序的核心组件,而子容器负责管理与 Servlet 相关的组件(如控制器等)。这样的结构在传统的 WAR 部署中比较常见。
  • 在 Spring Boot 中,使用内嵌 Tomcat 时,整个应用程序作为一个单一的容器,而不再需要显式定义父子容器关系。这简化了配置和部署,并提供了更加直观和易于理解的应用程序结构。

b. JAR - Tomcat 进程

  • Spring Boot 打包成可执行的 JAR 文件,这个 JAR 文件包含了应用程序的所有依赖项,包括内嵌的 Tomcat。这种方式被称为 "fat JAR" 或 "可执行 JAR"。
  • 这样的 JAR 文件可以直接通过 java -jar 命令启动,不需要额外的外部容器。应用程序的部署变得更加简单,只需运行一个 JAR 文件,整个应用程序就启动了。
  • 由于每个 JAR 文件都包含了一个独立的 Tomcat 进程,因此在同一台服务器上可以运行多个 Spring Boot 应用程序,它们彼此独立,互不干扰。这为多个应用程序的同时运行提供了方便。

标签:JAR,依赖,浅谈,Spring,配置,Boot,应用程序,理解,SpringBoot
From: https://www.cnblogs.com/zzusjw/p/17901184.html

相关文章

  • 转DM8的SQL性能优化思路浅谈系列(二)
    ########sample2  https://www.modb.pro/db/635695干货攻略】达梦数据库DM8的SQL性能优化思路浅谈系列(二)们在上一次的分享中已介绍SQL优化的重要性,预估执行计划生成及基础说明和达梦性能分析思路。今天我们接着来聊一下达梦数据库参数调整、跟踪存储过程中的慢SQL思路及辅......
  • 如何理解DOM与BOM操作
    前端开发中,DOM(DocumentObjectModel)和BOM(BrowserObjectModel)是非常核心的部分,它们分别代表了网页的内容和交互性。DOM(文档对象模型)DOM是一个接口,它为文档提供了一种结构化的表示,同时也提供了访问和操作文档内容的机制。在浏览器中,HTML和XML文档都被转化为DOM,成为了一种......
  • SpringBoot 中使用 Filter
    Filter是JavaEE中Servlet规范的一个组件,位于包javax.servlet 中,它可以在HTTP请求到达Servlet之前,被一个或多个Filter处理。它的工作流程如图:Filter的这个特性在生产环境中有很广泛的应用,如:修改请求和响应、防止xss攻击、包装二进制流使其可以多次读,等等。实际工作中,......
  • 【转载】Springboot2.x单元测试
    参考https://blog.csdn.net/wangxi06/article/details/114630426https://blog.csdn.net/qq_44381387/article/details/120869168(新版spring-boot-starter-test不再集成junit,而是junit-jupiter,无需@RunWith)https://www.jianshu.com/p/34f57f41af70https://www.cnblogs.co......
  • SpringBoot接收日期参数异常
    一、关于接收前端传递的日期参数的问题:前提:Date类型的属性上添加了以下注解:@JsonFormat(timezone="GMT+8",pattern="yyyy-MM-dd")@DateTimeFormat(pattern="yyyy-MM-dd")@JSONField(format="yyyy-MM-dd")1、java.sql.date:空字符串解析报错,正常日期格式字符串没问......
  • SpringBoot中@Transactional失效场景
    一、背景:1、需求  定时器需要定时到“消息通知表”中获取“消息反馈表”中不存在的数据,遍历这些数据,并对每一条数据发起流程,不管发起成功与否都需要往消息反馈表中插入一条该数据的发起结果,若发起成功还需要往“核查案件表”中插入一条该案件的主表数据2、问题:  发现在发......
  • springboot虚拟线程(jdk21,springboot3.2.0)
    1.什么是虚拟线程虚拟线程是JDK21版本正式发布的一个新特性。虚拟线程和平台线程主要区别在于,虚拟线程在运行周期内不依赖操作系统线程:它们与硬件脱钩,因此被称为“虚拟”。这种解耦是由JVM提供的抽象层赋予的。虚拟线程的运行成本远低于平台线程。它们消耗的内存要少得多。这就......
  • 【SpringBootWeb入门-12】MySQL-DDL-图形化工具
    1、章节前言上一篇文章我们讲解了MySQL的安装与配置,以及相关sql命令的执行操作,在演示这些sql语句的时候,我们都是在命令行当中进行操作的,在命令行当中敲写语句很不方便,主要原因有以下几点:无提示:命令行当中输入任何sql语句没有任何提示,全凭记忆,而且很容易敲错代码;操作繁琐:全部的......
  • R语言贝叶斯Metropolis-Hastings采样 MCMC算法理解和应用可视化案例
    全文链接:https://tecdat.cn/?p=34543原文出处:拓端数据部落公众号贝叶斯MCMC模拟是一个丰富的领域,涵盖了各种算法,共同目标是近似后验模型。例如,使用的rstan包采用了一个HamiltonianMonteCarlo算法。用于贝叶斯建模的另一个rjags包采用了Gibbssampling算法。尽管细节有所不同,但......
  • springboot004旅游路线规划系统(Java毕业设计,附数据库和源码)
    第一章绪论1.1选题背景与研究意义随着社会的不断进步,在居民生活水平提高的同时,人们当前在生活的方方面面也越来越注重服务所带来的体验,随着近几年国家政策大力发展旅游业,旅游景点的建设越来也完善,旅游业的发展速度得到了显著的提升。各大旅行社、旅游景点都不断的推出新的活动计......