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日
    浏览(66)
  • spring boot 自动配置

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

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

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

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

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

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

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

    2024年02月16日
    浏览(36)
  • Spring Boot的自动配置原理

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

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

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

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

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

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

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

    2024年02月06日
    浏览(46)
  • 【Spring Boot】自动配置及重要注解解析

    1、springboot自动配置了哪些功能 1)tomcat的自动配置 引入了tomcat的相关依赖 2)自动配置springmvc及常用功能 我们在主启动类中加两行代码,查看一下spring boot加载了哪些组件 通过在控制台输出中搜索,我们可以发现转发请求的dispatcherServlet、解决乱码的characterEncodingFilter还有视

    2023年04月09日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包