SpringBoot的自动配置原理过程解析

SpringBoot的最大好处就是实现了大部分的自动配置,使得开发者可以更多的关注于业务开发,避免繁琐的业务开发,但是SpringBoot如此好用的

自动注解过程着实让人忍不住的去了解一番,因为本文的注解解析过程会持续更新本部分,所以首先从简单的自动配置原理过程进行描述,后边在

学习完注解驱动开发后,进行更深入的记录;

自动配置原理过程解析:

万事都从SpringBoot的入口出发,首先看到入口的注解 

@SpringBootApplication

该注解的详细实现:

@EnableAutoConfiguration

 该注解主要利用了 @import(EnableAutoConfigurationImportSelector.class ) 选择器来导入一些自动配置(@import是用来进行导组件);

 进入 EnableAutoConfigurationImportSelector.class 类,然后进入父类 AutoConfigurationImportSelector 

进入其父类:

具体看该类的方法 selectImports() 方法:

进入 getCandidateConfigurations()  方法中; 该方法中 存在一个 SpringFactoriesLoader.loadFactoryNames 方法;

 在 loadFactoryNames 方法中 通过 classLoader.getResources 方法 得到 目标资源

 进入 FACTORIES_RESOURCE_LOCATION 

然后重新回到 loadFactoryNames 继续往下看:

然后重点看 factoryClassName 这个类

点进入查看详细代码:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏jiajia_deng

Qt 5.11.1 静态编译

离线安装包:http://download.qt.io/archive/qt/5.11/5.11.1/

1.7K20
来自专栏JavaEE

微信Java开发工具包的使用前言:一、weixin-java-tools介绍:二、使用方法:总结:

之前我在《Java调用微信登录以及eclipse远程调试》一文中说到了Java程序怎么调用微信登录,不过那篇文章中使用的是手工方式,本文将介绍如何使用第三方SD...

31120
来自专栏开源优测

[接口测试 - 基础篇] 12 还是要掌握python日志管理模块的

python logging模块介绍 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的...

38280
来自专栏京东技术

你们要的Intellij IDEA 插件开发秘籍,来了!

王昭霞,软件开发工程师,先后从事脚本工具编写、工具开发、Android基础模块开发等工作。

14.5K130
来自专栏从零开始学自动化测试

python接口自动化11-post传data参数案例

前言: 前面登录博客园的是传json参数,有些登录不是传json的,如jenkins的登录,本篇以jenkins登录为案例,传data参数。 一、登录jen...

39540
来自专栏Java 源码分析

SpringBoot 笔记 ( 三 ):日志系统

SpringBoot 笔记 ( 三 ):日志系统 1、日志框架 日志框架就是防止我们再去像以前那样,一直进行System.out.println(“”)将关键数...

78250
来自专栏java一日一条

Java Spring中同时访问多种不同数据库

开发企业应用时我们常常遇到要同时访问多种不同数据库的问题,有时是必须把数据归档到某种数据仓库中,有时是要把数据变更推送到第三方数据库中。使用Spring框架时,...

30510
来自专栏Java技术栈

Jodd - Java界的瑞士军刀轻量级工具包!

36720
来自专栏木木玲

Netty in action ——— 异步和事件驱动

22980
来自专栏C/C++基础

GDB入门教程

GDB(The GNU Debugger),是GNU开源组织发布的一个强大的UNIX程序调试工具。如果你是在 UNIX平台下开发软件,你会发现GDB这个调试工具...

34730

扫码关注云+社区

领取腾讯云代金券