springBoot自动配置的全过程

 更新时间:2023年09月04日 17:13:51   作者:amcomputer  
这篇文章主要介绍了springBoot自动配置的全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

什么是自动配置

以前整合spring + mybatis框架时候,需要加很多的bean,

比如说sqlSessionFactory等等现在springboot帮我们干了,

我们只需要引入对应的starter就可以了。

springBoot可以帮我们配置好了一些bean. 如mysql, mogondb相关操作等等,目前有100多个。

不需要我们一个一个的import:

单个导入效率太低了。

如何实现批量导入?

@import(AutoConfigurationImportSelector.class)

通过AutoConfigurationImportSelector.selectImports方法导入配置类集合。

当然其他jar里面也可以有配置类,不一定都会在starter里面。

需要其他jar里面主动告诉springBoot,说明是配置类:文件路径为meta-inf/spirng.factories

寻找步骤

1 jar找文件

meta-inf/spirng.factories

2 找key

3 values是配置类

4 去重

5 classLoader加载类

找到自动配置类名字

6 过滤无关的配置类

先看依赖,看pom里面是否有,然后再看是否有关键类。

有135个配置类,无关配置类很多,

通过spring-autoconfigure-metadata.propertes文件

先其他jvm, 在启动spring容器,导致速度比较慢。

其他

springBoot3.0后,使用了gravVM技术,在编译时候就开始把bean扫描出来。

后面启动时候直接注册加载bean,不需要再进行扫描

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java设计模式之桥模式(Bridge模式)介绍

    Java设计模式之桥模式(Bridge模式)介绍

    这篇文章主要介绍了Java设计模式之桥模式(Bridge模式)介绍,本文讲解了为什么使用桥模式、如何实现桥模式、Bridge模式在EJB中的应用等内容,需要的朋友可以参考下
    2015-03-03
  • mybatis查询结果返回至实体类的示例代码

    mybatis查询结果返回至实体类的示例代码

    这篇文章主要介绍了mybatis查询结果返回至实体类的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Mybatis 一级缓存与二级缓存的实现

    Mybatis 一级缓存与二级缓存的实现

    mybatis作为一个流行的持久化工具,缓存必然是缺少不了的组件。通过这篇文章,就让我们来了解一下一级缓存与二级缓存的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • java保证对象在内存中唯一性的实现方法

    java保证对象在内存中唯一性的实现方法

    这篇文章主要介绍了java如何保证对象在内存中的唯一性,如果创建多个对象的话,可能会引发出各种各样的问题,这时,就需要我们保证这个对象在内存中的唯一性,需要的朋友可以参考下
    2019-06-06
  • 基于Column注解的columnDefinition用法

    基于Column注解的columnDefinition用法

    这篇文章主要介绍了Column注解的columnDefinition用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 解决java中mybatis报错:org.apache.ibatis.binding.BindingException:Invalid bound statement(not found):xx问题

    解决java中mybatis报错:org.apache.ibatis.binding.BindingException:

    这篇文章主要介绍了解决java中mybatis报错:org.apache.ibatis.binding.BindingException:Invalid bound statement(not found):xx问题,具有很好的参考价值,希望对大家有所帮助
    2024-03-03
  • Java程序员需要掌握的英语词组

    Java程序员需要掌握的英语词组

    这篇文章主要为大家详细汇总了Java程序员需要掌握的英语词组 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • feign GET请求不支持对象传参的坑及解决

    feign GET请求不支持对象传参的坑及解决

    这篇文章主要介绍了feign GET请求不支持对象传参的坑及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • Java Web实现自动登陆功能

    Java Web实现自动登陆功能

    这篇文章主要为大家详细介绍了Java Web实现自动登陆功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Spring的IOC原理详情

    Spring的IOC原理详情

    这篇文章主要介绍了Spring的IOC原理详情,IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,还有些书籍翻译成为控制反向或者控制倒置
    2022-07-07

最新评论