springboot出现的原因(一)--处理spring和maven的关系

为什么会出现这个springboot,他出现的背景是为了解决什么问题

1.整合依赖管理的机制

了解springboot之前,我认为是要先去了解mave

springboot是解决maven相关的问题在代码工程的实践

不管是前端还是后端

在代码走向工程化以后。

都是先引入依赖,后面对依赖进行配置

前端引入技术栈是在nodejs里面,在main.js里面进行配置之类的

后端引入技术栈是在mavenl里面,在config包下对类进行配置

🗃️ Spring Boot对Maven的整合

Spring Boot 深度整合了 Maven,让你不必再为版本冲突和复杂的依赖声明头疼。

  • 父级依赖与版本管理 :新建项目时 spring-boot-starter-parent 就定义好了最佳实践与版本清单。之后你引入依赖时无需再指定版本号,由父级依赖统一管理。
  • 起步依赖 ("Starter") :这是对常用依赖的封装,其本质是一个"依赖集合"。例如只要引入 spring-boot-starter-web,就会通过依赖传递把所有相关库(如 Spring MVC、Jackson 等)一次性引入。

✨ Spring Boot整合的Spring机制

Spring Boot 在 Spring Framework 基础上,通过一系列核心机制,让各种技术组件变得"即插即用"。

  • 自动配置 (Auto-Configuration) :这是其最强大的部分。@SpringBootApplication 注解会触发 @EnableAutoConfiguration,扫描并加载预定义的配置类。同时,配置类使用 @ConditionalOnMissingBean 这样的"条件化"注解,智能判断配置是否生效。
  • 外部化配置 :Spring Boot 允许在 application.properties 或 application.yml 中通过 server.port 等配置项覆盖自动配置的默认值。
  • 生产就绪特性 (Actuator) :集成 spring-boot-starter-actuator 后,可通过 HTTP 端点(如 /health、/metrics)监控应用的健康状况、性能指标等。
  • 默认整合的其他功能:Spring Boot 还自动整合了 JMX 管理、Logback 日志等基础设施。

这里要提一嘴:
spring-boot-starter 远不止包含了 spring-core 这些 Spring 核心模块,它是一个完整的"开箱即用"工具包。

它作为所有 Spring Boot 应用的基础,为我们提前准备了自动配置引擎、完善的日志系统、便捷的 YAML 配置解析等必备能力。这正是你之前体验到的"只引入一个 Starter,IoC 容器就能直接使用"的原因。

📦 spring-boot-starter 的核心组成

下面是 spring-boot-starter 引入的几类核心内容:

功能类别 提供的核心能力
😄 Spring 核心框架 提供 IoC、DI 及 spring-core、spring-context 等 Spring 基础设施。
🔩 自动配置引擎 引入 spring-boot-autoconfigure,支持依赖和配置文件的自动装配。
📝 日志系统 通过 spring-boot-starter-logging(默认基于 Logback)提供日志抽象与实现。
⚙️ 配置文件解析 引入 snakeyaml,支持用更简洁的 .yml 格式(或 application.properties)定义配置。
🛠️ 基础工具链 包含 spring-boot 核心包,提供 SpringApplication 启动类等关键工具。

🎯 知识串联:IoC、自动配置与 YAML 的关系

现在,我们可以把之前聊的内容和这张表连起来,构建一个清晰的调用逻辑:

  1. 启动入口 :main 方法调用 SpringApplication.run()。
  2. 容器创建 :spring-boot-starter 包内的逻辑创建并启动 IoC 容器。
  3. 自动化处理:自动配置引擎介入,根据类路径下的依赖自动配置组件。
  4. 配置读取 :snakeyaml 解析你写在 application.yml 中的定制化属性(如数据源地址)。
  5. 组件注册 :最后,所有这些自动配置的组件,包括 MyService,都会被注册到 IoC 容器中,完成整个启动流程。
相关推荐
IT研究室5 小时前
最新计算机毕业设计选题推荐-基于spring boot的葡萄酒文化宣传网站-网站-文档指导-Java-springboot
java·spring boot·课程设计
凤山老林7 小时前
Spring Boot 集成 Sa-Token 实现高可用权限认证:登录鉴权、动态路由权限与接口防重放实战
spring boot·后端·sa-token·bootstrap
SL_staff7 小时前
为什么业务总在等BI报表?JVS-BI的可视化ELT实践解析
spring·数据分析·数据可视化
badhope8 小时前
Spring AI Alibaba停更:Java程序员的信任,还能被辜负几次?
java·spring
Wx-bishekaifayuan8 小时前
springboot桂味美食分享系统40540-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
墨神谕10 小时前
RabbitMQ 从入门到实战:核心原理、消息模型、可靠性机制与 Spring Boot 实战
spring boot·rabbitmq·java-rabbitmq
威哥爱编程11 小时前
【AI全栈12-12】Spring Boot 3.x → 4.x 迁移实操:Jakarta 11、Jackson 3 与 AI 2.0
java·spring boot·后端
威哥爱编程11 小时前
【AI全栈12-11】Spring Boot 把 AI 接口真正上线扛量:限流 / 降级 / 可观测
java·spring boot·后端
小蒜学长11 小时前
基于SpringBoot+uni-app的闪洁家政系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·uni-app·家政服务
做个文艺程序员11 小时前
MQ第07篇:Java SaaS多租户消息隔离实战:RabbitMQ VHost+RocketMQ Tag+命名空间架构
spring boot·rabbitmq·rocketmq·saas·多租户