Java开发-面试题-0026-Spring Boot 自动配置原理

Java开发-面试题-0026-Spring Boot 自动配置原理

更多内容欢迎关注我(持续更新中,欢迎Star✨)

Github:CodeZeng1998/Java-Developer-Work-Note

(技术)微信公众号:CodeZeng1998

(生活)微信公众号:好锅

其他平台:CodeZeng1998好锅

Spring Boot 自动配置原理

Spring Boot 的自动配置原理是通过 @EnableAutoConfiguration 注解及其背后的机制来实现的,它能够自动配置应用程序的基础设施和常用组件,减少了开发者手动配置的工作量。

自动配置的核心原理

  1. @EnableAutoConfiguration 注解

    • 这是 Spring Boot 自动配置的核心注解。它用于启用自动配置功能,通常与 @SpringBootApplication 注解一起使用。@SpringBootApplication 实际上是一个组合注解,包含了 @EnableAutoConfiguration@ComponentScan@Configuration
  2. spring.factories 文件

    • Spring Boot 自动配置是通过 spring-boot-autoconfigure 包中的 META-INF/spring.factories 文件实现的。该文件中定义了许多 EnableAutoConfiguration 的自动配置类。这些类会在应用启动时被 Spring Boot 自动加载并初始化。

    • spring.factories 文件格式如下:

      org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
      org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration,\
      org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,\
      ...
      
    • 这些类实现了具体的自动配置逻辑。

  3. @Conditional 注解族

    • 每个自动配置类通常使用 @Conditional 系列注解(如 @ConditionalOnClass@ConditionalOnMissingBean@ConditionalOnProperty 等)来决定是否加载某个配置类。这些注解会根据类路径中是否存在某个类、Spring 环境中是否存在某个 Bean、是否有特定的属性配置等条件,决定是否进行相应的配置。
  4. 自动配置流程

    • 启动阶段:当 Spring Boot 应用启动时,@EnableAutoConfiguration 注解触发自动配置机制,Spring Boot 扫描 spring.factories 文件,并加载其中的所有自动配置类。
    • 条件匹配:对于每个自动配置类,Spring Boot 逐个检查其上的条件注解。如果所有条件都满足,则会将该自动配置类中的 @Bean 方法加载到 Spring 容器中,注册为 Bean
    • 最终配置:通过这种机制,Spring Boot 自动配置了应用所需的许多常见组件,例如数据源、事务管理器、MVC 配置等。

自动配置的示例

例如,DataSourceAutoConfiguration 是一个自动配置数据源的类,它的原理如下:

  • spring.factories文件中有如下定义:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值