Spring Boot 中的自动配置(autoconfigure)

这篇具有很好参考价值的文章主要介绍了Spring Boot 中的自动配置(autoconfigure)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文中部分图片来源为 动力节点-王鹤老师的Spring Boot3.0 视频讲解中。


一、自动配置的原理

  • 自动配置:从类路径中,搜索相关的 jar,根据 jar 的内容,尝试创建所需的对象。例如,如果有 MyBatis .jar,Spring Boot 会尝试创建 DataSource(根据配置文件中的url,username,password)连接数据库。还需要创建 SqlSessionFactory,Dao 接口的代理对象。这些内容不需要开发人员写一行代码,就能使用 MyBatis 框架了。
    Spring Boot 中的自动配置(autoconfigure),Spring Boot,spring boot,后端,java
    Spring Boot 中的自动配置(autoconfigure),Spring Boot,spring boot,后端,java

  • xxx.imports 文件是自动配置类列表。 ====> 说明有哪些自动配置类。

  • xxxAutoConfiguration 是自动配置类。====> @EnableConfigurationProperties({xxxProperties.class}) 将指定的绑定Bean注入到容器中。

  • xxxProperties 是绑定Bean。 ====> @ConfigurationProperties(prefix = “xxxx”) 说明该类是一个绑定Bean。文章来源地址https://www.toymoban.com/news/detail-824161.html


二、关键注解和类

1.@EnableAutoConfiguration 注解

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {
	String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
	Class<?>[] exclude() default {};
	String[] excludeName() default {};
}
  • 开启自动配置。将spring和第三方库中的对象创建好,注入到spring容器,避免写XML,去掉样例代码。需要使用的对象,由框架提供
  • @EnableAutoConfiguration 通常由 @SpringBootApplication 注解带入。

2.@Import 注解

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Import {
    Class<?>[] value();
}
  • @Import:导入类,注册为Bean。@Import 相当于 xml 文件中的 。可以导入@Configuration 的类,实现了 ImportSelector 接口的类,ImportBeanDefinitionRegister 接口的类。

3.AutoConfigurationImportSelector 类

  • AutoConfigurationImportSelector 间接实现了 ImportSelector 接口,导入自动配置类。
  • 自动配置从 jar 的指定文件读取要加载的配置类列表(xxxx.imports 文件)。
    Spring Boot 中的自动配置(autoconfigure),Spring Boot,spring boot,后端,java
    Spring Boot 中的自动配置(autoconfigure),Spring Boot,spring boot,后端,java
    Spring Boot 中的自动配置(autoconfigure),Spring Boot,spring boot,后端,java

4.@AutoConfiguration 注解

  • 新的注解 @AutoConfiguration,用在自动配置类的上面。相当于增强的 @Configuration,专注自动配置类。
  • @AutoConfiguration 还支持通过 after、afterNames、before 和 benamemes 属性进行自动配置排序,决定多个自动配置类执行的先后顺序。

5.其他相关的注解和类

  • @Configuration
  • @ConfigurationProperties
  • @EnableConfigurationProperties
  • @ConditionalXXXXX 条件注解

到了这里,关于Spring Boot 中的自动配置(autoconfigure)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Caused by: java.lang.UnsupportedClassVersionError: org/mybatis/spring/boot/autoconfigure/MybatisDepe

    最近搭建了Maven+Springboot项目,启动报错

    2024年02月12日
    浏览(35)
  • spring boot 自动配置

    自动配置介绍 Spring Boot自动装配(Auto Configuration)是Spring Boot框架的一个关键特性,它通过约定大于配置的方式来简化项目的配置过程。自动装配允许开发人员使用默认的配置,同时也可以根据需要进行定制化。Spring通过使用 @Autowired 注解、 @ComponentScan 注解以及条件化配置等

    2024年01月25日
    浏览(39)
  • Spring Boot 自动配置原理

    一、概述 相比较于Spring 繁杂的xml配置,Spring Boot 的自动配置极大的简化了开发 二、自动配置过程 1、引入场景启动器starter 2、SPI思想,自动扫描和加载META-INF下面的配置类 3、 配置类 通过@Bean配置组件 4、配置类通过@EnableConfigurationProperties将配置类与属性类绑定 5、 属性类

    2024年03月14日
    浏览(38)
  • Spring Boot自动配置原理

    springboot是基于spring的新型的轻量级框架,最厉害的地方当属**自动配置。**那我们就可以根据启动流程和相关原理来看看,如何实现传奇的自动配置 从上面代码可以看出,Annotation定义(@SpringBootApplication)和类定义(SpringApplication.run)最为耀眼,所以要揭开SpringBoot的神秘面纱

    2024年01月19日
    浏览(27)
  • Spring Boot的自动配置原理

    Spring Boot的自动配置是Spring框架的一个重要特性,它旨在简化应用程序的开发和部署过程。自动配置通过基于类路径中的依赖关系和配置文件内容来预先配置Spring应用程序的各种组件和功能。这样,我们可以在无需显式配置大量参数的情况下,快速搭建一个运行良好的Spring应

    2024年02月14日
    浏览(25)
  • 聊聊Spring Boot的自动配置

    介绍 Spring Boot的自动配置是其一大核心特性,可以让我们迅速构建出一个Spring应用程序。 Spring Boot 是 Spring Framework 中最火的项目之一,它通过集成各种第三方库和框架来简化开发过程,并提供一些优秀的默认设置,使得开发人员可以快速构建高效的企业级应用。本文将主要讲

    2024年02月10日
    浏览(26)
  • 45、Spring Boot自动配置原理

    @lmport + @Configuration + Spring spi 自动配置类由各个starter提供,使用@Configuration + @Bean定义配置类,放到META-INF/spring.factories下 使用Spring spi扫描META-INF/spring.factories下的配置类 使用@lmport导入自动配置类

    2024年02月16日
    浏览(27)
  • Spring Boot 自动配置功能介绍

    Spring Boot 是一个流行的 Java 开发框架,它提供了许多便利的功能和工具,帮助开发者快速构建应用程序。其中一个最引人注目的特性是其强大的自动配置功能。 在传统的 Java 开发中,我们通常需要手动配置应用程序的各个组件和依赖项。这可能涉及到编写大量的配置代码,导

    2024年02月03日
    浏览(48)
  • Spring Boot中的依赖注入和自动注入

    以下内容为本人学习 Spring Boot的依赖注入和自动注入 与ChatGpt提问后对其回答 进行部分修改 (有的错误实在是离谱 = =)、格式调整等操作后的答案, 可能对于其中部分细节(是错是对,能力有限有的看不出来 = =),并未做深入探究 ,大家感兴趣的话可以自行验证。 依赖注

    2024年02月06日
    浏览(34)
  • Spring Boot 3.x 自动配置详解

    基于Spring Boot 3.1.0 系列文章 Spring Boot 源码阅读初始化环境搭建 Spring Boot 框架整体启动流程详解 Spring Boot 系统初始化器详解 Spring Boot 监听器详解 Spring Boot banner详解 Spring Boot 属性配置解析 Spring Boot 属性加载原理解析 Spring Boot 异常报告器解析 Spring Boot 3.x 自动配置详解 Spring

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包