当前位置: 首页 > news >正文

Spring Boot项目的核心依赖

这几个 Spring Boot 依赖都是开发中常用的核心组件,各自负责不同的功能,下面详细说明它们的作用、使用场景以及关联的注解/配置:

1. spring-boot-starter

作用:Spring Boot 的核心 starter(启动器),包含了 Spring Boot 最基础的自动配置、日志、生命周期管理等核心功能,是所有 Spring Boot 应用的基石。
核心功能

  • 提供 Spring 核心容器的自动配置(如 @Configuration@Bean 的处理)。
  • 实现 Spring Boot 的“自动配置”机制(基于 @Conditional 等注解的条件装配)。
  • 整合日志框架(默认用 Logback),提供日志输出能力。
    使用场景:所有 Spring Boot 应用都必须依赖它(其他 starter 通常会间接依赖它,所以即使不手动加,也可能被间接引入)。
    关联注解
  • @SpringBootApplication(包含 @EnableAutoConfiguration,依赖此 starter 才能生效)。
  • @Configuration@Bean(Spring 核心配置注解,由该 starter 支持)。

2. spring-boot-starter-aop

作用:整合 Spring AOP(面向切面编程)功能,简化 AOP 开发,无需手动导入 AspectJ 等依赖。
核心功能

  • 提供 AOP 相关的自动配置,支持 AspectJ 语法(如 @Aspect@Before 等)。
  • 简化切面、通知、切点的定义,无需手动配置 AOP 代理。
    使用场景:需要实现日志记录、性能监控、事务控制、权限校验等“横切逻辑”时使用。
    关联注解
  • @Aspect(定义切面类)。
  • @Before@After@Around(定义通知方法,指定切点时机)。
  • @Pointcut(定义切点表达式,指定拦截哪些方法)。

3. spring-boot-starter-web

作用:开发 Web 应用(包括 RESTful API、MVC 网页等)的核心 starter,整合了 Spring MVC、Tomcat 容器等 Web 相关组件。
核心功能

  • 集成 Spring MVC(处理 HTTP 请求、路由映射、参数绑定等)。
  • 内置 Tomcat 作为默认 Servlet 容器(无需手动部署服务器)。
  • 提供 JSON 序列化/反序列化(默认用 Jackson)。
    使用场景:所有需要对外提供 HTTP 接口的应用(如后端 API 服务、Web 网站)。
    关联注解/配置
  • 控制器注解:@RestController@Controller@RequestMapping@GetMapping@PostMapping 等(处理 HTTP 请求映射)。
  • 参数绑定:@RequestParam@PathVariable@RequestBody 等(解析请求参数)。
  • 配置:server.port=8080(在 application.properties 中配置端口,由该 starter 解析)。

4. spring-boot-configuration-processor

作用:生成配置元数据,用于 IDE 对配置参数的自动提示,简化配置文件的编写。
核心功能

  • 编译时扫描带有 @ConfigurationProperties 的类,生成 META-INF/spring-configuration-metadata.json 文件。
  • IDE(如 IDEA、Eclipse)读取该元数据,在编写 application.propertiesapplication.yml 时提供参数名、注释、默认值的自动补全。
    使用场景:当自定义配置类(用 @ConfigurationProperties 绑定配置)时,用于提升开发体验。
    关联注解
  • @ConfigurationProperties(prefix = "xxx")(将配置文件中的参数绑定到 Java 类的字段,配合此依赖可获得 IDE 提示)。
    例如:
    @ConfigurationProperties(prefix = "myapp")
    public class MyAppConfig {private String name; // 对应配置 myapp.name=xxx
    }
    
    application.properties 中输入 myapp. 时,IDE 会自动提示 name 字段。

总结

  • 基础必备:spring-boot-starter(核心功能)、spring-boot-starter-web(Web 应用必加)。
  • 切面编程:spring-boot-starter-aop(需要 AOP 时加)。
  • 配置提示:spring-boot-configuration-processor(自定义配置时加,提升开发效率)。

这些 starter 遵循“约定大于配置”,通过自动配置减少手动 XML 或代码配置,让开发者更专注于业务逻辑。


项目中使用

:比如分层聚合项目(自定义的项目←common←pojo←dao←service←api)中,需要在主pom中引入spring-boot-starter-parent(从MVNRepository中搜索),在主pom中用"<parent></parent>",如下:

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.4</version><relativePath /></parent>

<relativePath />的作用从Maven 仓库(本地仓库或远程仓库)下载 spring-boot-starter-parent:3.3.4 的 pom 文件。实际上spring-boot-starter-parent继承spring-boot-dependencies;spring-boot-dependencies中管理了Spring Boot 相关依赖的版本,spring-boot-starter-parent负责版本管理+项目配置。然后可以在common中引入这些Spring Boot 相关依赖,不用指定具体的版本。若想覆盖版本,可以在自定义的项目的pom文件的 <dependencyManagement> </dependencyManagement>中声明依赖的版本。

http://www.dtcms.com/a/553748.html

相关文章:

  • ollama本地化部署deepseek/大模型及其api流式调用
  • 向华为学习——53页华为制造行业数字化转型工业互联网智能制造解决方案【附全文阅读】
  • 基于电鱼 ARM 工控机的煤矿主控系统高可靠运行方案——让井下控制系统告别“死机与重启”
  • 顶尖网站建设国内大宗商品交易平台有哪些
  • 用langchain搭建简单agent
  • 在 Windows 11 中安装 VirtualBox 7.2.4
  • 【开题答辩全过程】以 基于Java的社交健身系统的设计与实现为例,包含答辩的问题和答案
  • Ubuntu20.04升级autoconf
  • 网站名注册最佳商城ui网站设计
  • R包kuenm和ENMeval--你用对了吗?
  • 接口自动化测试项目框架详解
  • 临安网站建设海口网红
  • 10.string(上)
  • 集团公司手机站网站报送举报网站建设情况
  • 【Spring Boot】Spring AOP动态代理,以及静态
  • 使用Requests和正则表达式实现网络小说爬取技术解析
  • spine动画监听动作播放完成重复执行
  • ui设计网站开发乡村建设的网站
  • 最新版 dify 如何离线安装插件
  • html网站的直播怎么做绵阳个人网站建设
  • 苯乙烯自由基聚合与丙交酯开环聚合的MATLAB模拟
  • 从一到无穷大 #53 Beyond TSDB Query performance: Homomorphic Compression
  • 张掖建设网站眉山市建设局网站
  • Android和springboot的后端json数据库mysql传送
  • 旅游网站系统商标购买网商标
  • 好用的 display: flow-root
  • 做路牌的网站深圳做外贸网站公司
  • C++笔记(面向对象)多重继承 菱形继承
  • 淘宝商品详情 API(taobao.item.get)从 0 到 1:申请流程、核心参数与首次调用实战
  • 大连市建设部网站官网权威的网站建设公司