面试之springboot自动配置原理「建议收藏」

面试之springboot自动配置原理「建议收藏」自动配置首先从注解说起。@SpringBootApplication由三个注解组成:@CompanentScan,@EnableAutoConfiguration,@SpringBootConfiguration(其实就是@Configuration注解),其中@EnableAutoConfiguration通过@Import注解将AutoConfigurationImportSelector.class这个类引进来。该类会去加载所有jar包的META-INFO下面的spring-……

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

自动配置首先从注解说起。@SpringBootApplication由三个注解组成:@CompanentScan, @EnableAutoConfiguration,@SpringBootConfiguration(其实就是@Configuration注解) ,

其中@EnableAutoConfiguration 通过@Import注解 将AutoConfigurationImportSelector .class这个类引进来。该类会去加载所有jar包的META-INFO下面的spring-factories配置文件,这里其实用到了spring里面的spi机制,如果对spi机制不懂的可以去百度学习一下。

这个文件是个key-value的形式,key是EnableAutoConfiguration的全路径名,value是各个需要自动配置的类。然后springboot默认在这个配置文件中定义了大约100多个常用的配置类,然后再根据Condition按需加载我们需要的配置类,比如在配置文件中增加了对应的配置,对应的配置类就会生效。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171541.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021最新Java基础篇(后续已更新到另一篇文章)

    2021最新Java基础篇(后续已更新到另一篇文章)提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、Java基础?1.1什么是变量:1.2类型的分类:1.3类型的大小:1.4类型的转换与强制类型转换:二、使用步骤1.引入库2.读入数据总结前言提示:在这里可以学到Java基础内容。一、Java基础?1.1什么是变量:变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据。由于该存储单元中的数据可以发生改变,因此得名为”变量”1.2类型的分类:1、基本数据类型变量2、引用数据类型变量

    2022年7月9日
    20
  • 五大经典算法总结

    五大经典算法总结    马上要开始投简历找实习了,自己还是毛都不会,慌得一笔,从今天开始每天刷2道以上的leetcode然后总结,并且总结各种面试题的知识点,以后常复习,加油。    在刷leetcode时经常看到有人说DP,然后去百度了DP是个啥,才知道DP是五大经典算法之一,今天开始总结一下五大经典算法。    五大经典算法分为1、分治法:把一个复杂的问题分成两个或更多的相同或相似的子问…

    2022年5月18日
    47
  • jvm内存泄漏

    jvm内存泄漏内存泄漏和内存溢出的关系内存泄露:指程序中动态分配内存给一些临时对象,但是对象不会被GC所回收,它始终占用内存。即被分配的对象可达但已无用。内存溢出:指程序运行过程中无法申请到足够的内存而导致的一种错误。内存溢出通常发生于OLD段或Perm段垃圾回收后,仍然无内存空间容纳新的Java对象的情况。从定义上可以看出内存泄露是内存溢出的一种诱因,但是不是唯一因素。可以使用Runtime.ge…

    2022年5月6日
    50
  • Java实现七牛云文件或图片上传下载

    Java实现七牛云文件或图片上传下载文章目录一、准备工作1.1.为什么选择七牛云?1.2.七牛云注册二、java操作七牛云对象存储下载2.1.pom.xml引入依赖2.2.上传下载具体代码三、具体业务例子(七牛云做图片服务器–SpringBoot)3.1.pom.xml(此处继承上面的依赖多引入一个)3.2.创建一个html页面3.3.接下来就是FileUtil.java(判断图片的后缀是否符合要求)3.4.接下来写QiniuService.java3.5.最后是controller3.6.查看七牛云存储结果四、总结一、准备工作1

    2022年5月14日
    35
  • php ora01017,使用dblink出现ORA-01017

    php ora01017,使用dblink出现ORA-01017本地的Oracle数据库是版本是10g的,远程的数据库版本版本是11g,在本地建数据库连接后执行测试查询语句竟然出错,用户名/密码明明本地的Oracle数据库是版本是10g的,远程的数据库版本版本是11g,在本地建数据库连接后执行测试查询语句竟然出错,用户名/密码明明是对的。SQL>createdatabaselinkDBLINK_TESTconnecttotestidenti…

    2022年5月31日
    50
  • 能用python开发手机软件吗_python numpy

    能用python开发手机软件吗_python numpy有许多人对如何在手机上进行python开发感到很困惑,今天我就给大家推荐几个比较好的python开发软件。一.QPythonOHQPython真的是一款好的软件,它可以支持Python库的安装。内置sl4aserver,简直是一款神器!二.Pydroid3Pydroid3是我目前见过的最好的一款python编辑器,他可以使用pip,甚至可以在手机上掉。…

    2022年8月12日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号