Springboot无疑是最受欢迎的框架。原因是每个人最清晰的0配置都可以在没有配置的情况下启动Tomcat服务。
我相信,只要您使用了春季靴子,您就会对这种现象感到非常好奇:
为了开发故事,让我们以一个例子为例,例如,我们通常使用的redis在春季启动中使用。
依赖
配置YML文件
没关系,您可以直接引用,神奇
这样,在中间没有做任何事情的情况下完成了两个步骤。我们应该在这里提出一些问题。
首先,pom文件redis在哪里,为什么没有版本号,reids版本是什么?
其次,如何将其交给弹簧注入管理以及如何使用它。
我不知道您是否刚刚听说过靴子,您是否听说过它。我们必须理解一个真相。有人必须做事,我们必须自己做。一定是其他人帮助这样做。我们提取这些问题以深入查看源代码。
不用担心,在谈论过程的源代码之前,让我们先了解SPI。这个非常重要。大多数靴子都依靠这种机制来做事。先前的文章被简单地提到,并且发现今天无法解决。
SPI是服务提供商界面的全名,是服务发现机制。它在类路径路径下通过文件夹找到文件,并自动加载文件中定义的类。
对于故事的持续发展,我们建立一个项目
我们使用医生使我们成为核酸现场:
让我们看一下代码
定义SPI-Doctor模块中的接口
在SPI-PER人模块中定义两个实现类,
在这里,我们必须专门说明配置文件必须直接编写Meta-INF/服务。
文件中现实类的完整路径
SPI在这里,我们回顾一下示例。SPI的目的是使用SPI了解自动组件
回顾我们所做的工作,我们在资源下创建了一个文件,该文件放置了一些实现类,然后通过此类加载程序将其加载。
假设有人已经完成了诸如写作和配置之类的前步骤,那么我们只需要使用以下代码即可派遣所有相关的实现类。
我相信每个人在这里都有一个频谱。
回想起来,SPI机制是通过将配置文件放在组件下完成的,因此Spring Boot?Essence是
是的,是的,我们可以在POM文件的组名称下看到它。
显然,我在底部看到了带有自动配置的评论,并找到了它!
然后,我们寻找我们首先说的Redis
输入Redisaultoconfiguration类以查看内部的代码
哈哈解决了此案,最后违反了案件。不是在这里加载吗?
接下来,让我们尝试恢复案例。
然后,我们看到我们阅读spring.factories的方法,并注入它,看看您是否觉得自己正在进去,
实际上,读取配置正在注入。让我们看一下春天
类似于@component,@bean,ah jian不会这么说。每个人都必须看到这样的注释:
例如:打开异步,不要好奇该注释如何有效吗?让我们看看
您是否发现框架中到处都有导入评论。不要首先在这里扩展。当时
然后回去进去,然后进去
事实是通过这个()生效
好的,我们将研究最后一个注释,这也是Springboot的核心注释
当我们使用Springboot项目时,我们使用的唯一注释是@springbootapplication,因此我们唯一可以开始的就是它。打开它以查看。
输入核心逻辑
GetSpringFactoriesLoaderFactoryClass
结合上一步,它是加载配置文件并读取键的配置的配置
接下来,查看LoadFactoryNames
好的,背面的过滤逻辑不在这里。毕竟,本节的重点是自动组装机制。朋友知道原理还可以
这就是今天的自动组装原理。让我们下次看看
终于做了张tu的摘要