Springboot之spring-boot-autoconfigure模块

本文介绍了Springboot的自动配置特性,通过@EnableAutoConfiguration注解启用,根据classpath中的依赖和条件注解如@ConditionalOnClass、@ConditionalOnMissingBean进行bean的自动注入。以web容器为例,解释了如何通过EmbeddedServletContainerAutoConfiguration类自动配置Tomcat或Jetty。最后,总结了spring-boot-autoconfigure模块如何实现模块化和可扩展性,类比于SPI机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

Spring的出现给我们管理bean的依赖注入提供了便捷,但是当我们需要使用通过pom引入的jar里面的一个bean时候,还是需要手动在xml配置文件里面主要注入的bean 。springboot则可以依据classpath里面的依赖内容来自动配置bean到IOC容器,Auto-configuration会尝试推断哪些beans是用户可能会需要的。比如如果HSQLDB包在当前classpath下,并且用户并没有配置其他数据库链接,这时候Auto-configuration功能会自动注入一个基于内存的数据库连接到应用的IOC容器。但是要开启这个自动配置功能需要添加@EnableAutoConfiguration注解。

Auto-configuration使用在class上标注@Configuration注解实现,并且使用@

### 配置 Spring Boot 项目以集成 Knife4j-Spring-Boot-Starter 为了使 Spring Boot 应用程序能够自动生成 API 文档,可以采用 `knife4j-spring-boot-starter` 这一工具来简化这一过程。此组件不仅支持 Swagger 的功能特性,还提供了增强版的 UI 界面用于展示 API 文档。 #### 添加依赖项 首先,在项目的 `pom.xml` 文件中加入如下 Maven 依赖: ```xml <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency> ``` 上述操作引入了必要的库文件以便后续配置工作得以顺利开展[^2]。 #### 修改父级 POM 版本号 确保当前使用的 Spring Boot 版本兼容于所选的 `knife4j-spring-boot-starter` 版本。对于大多数情况而言,推荐使用较新的稳定版本组合。例如,如果正在使用的是 Spring Boot 2.7.5,则无需额外调整;否则应适当修改 pom 文件中的 `<parent>` 节点内容以匹配合适的 Spring Boot 发行版[^4]。 #### 更新应用程序属性设置 编辑位于资源目录下的 `application.yml` 或者 `application.properties` 文件,添加或更新以下参数以启用路径模式识别策略: ```yaml spring: mvc: pathmatch: matching-strategy: ant_path_matcher ``` 这一步骤有助于解决某些情况下由于默认路径解析器差异而导致的功能异常问题。 #### 启动类上添加注解 为了让应用自动扫描并注册 RESTful 接口到文档系统内,需在主启动类上方声明特定的 Java 注释: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import springfox.documentation.swagger2.annotations.EnableSwagger2; @SpringBootApplication @EnableSwagger2 // 开启 swagger 支持 public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 通过以上步骤完成基本环境搭建之后,当正常运行该 Spring Boot 工程时,默认会在本地服务器监听端口 8080 上提供 `/doc.html` 访问地址指向 Knife4j 提供的交互式 API 文档页面[^1]。 #### 测试接口分组显示效果 除了基础的 API 列表呈现外,还可以进一步探索更复杂的场景比如按模块划分不同的 API 组合等功能特性。具体实现方法涉及编写相应的 Docket Bean 定义以及利用 @Api 和其他元数据标签细化各个控制器的行为描述等细节处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值