Spring Boot 自动装配的原理!!!

@SpringBootApplication

@SpringBootConfiguration:标识启动类是一个IOC容器的配置类

@EnableAutoConfiguration:

@AutoConfigurationPackage:扫描启动类所在包及子包中所有的组件,生成实体bean并交给IOC容器管理

@Import({AutoConfigurationImportSelector.class}):会加载META-INF/spring.factories文件,并调用该文件中的自动配置类完成自动配置工作, 所以我们只需再application.yml中提供mysql的url、用户名、密码等信息即可完成mybatis的自动配置

@ComponentScan:配置springboot要扫描的包

完整描述:首先我们的启动类上有一个@SpringBootApplication注解,这个注解是一个复合注解。它主要包含三个注解:

第一个**@SpringBootConfiguration**标识启动类是一个IOC容器的一个配置类;

第二个**@EnableAutoConfiguration**这个注又包含两个注解:

1、@AutoConfigurationPackage这个注解主要是扫描启动类所在的包及其子包中的所有组件,生成实体Bean交给IOC容器管理。

2、@Import({AutoConfigurangionImportSelector.class})这个注解中的类SpringFactoriesLoader会加载META-INF/spring.factories文件,并调用该文件中的自动配置类完成自动配置工作。例如:所以我们只需在application.yml中提供mysql的url、用户名、密码等信息即可完成mybatis的自动配置。

第三个**@ComponentScan**主要是配置spring boot要扫描的包。

源码解释:

相关推荐
Predestination王瀞潞2 小时前
Java EE开发技术(Servlet整合JDBC银行管理系统-上)
java·servlet·java-ee·jdbc
寻星探路2 小时前
Java EE初阶启程记13---JUC(java.util.concurrent) 的常见类
java·开发语言·java-ee
怪兽20143 小时前
什么是 Redis?
java·数据库·redis·缓存·面试
Gu_yyqx3 小时前
Java 队列
java
落日漫游3 小时前
数据结构笔试核心考点
java·开发语言·算法
疯狂吧小飞牛3 小时前
Lua C API 中的注册表介绍
java·c语言·lua
kyle~3 小时前
C++--- override 关键字 强制编译器验证当前函数是否重写基类的虚函数
java·前端·c++
Hello.Reader3 小时前
Flink 受管状态的自定义序列化原理、实践与可演进设计
java·网络·flink
让我上个超影吧3 小时前
设计模式【工厂模式和策略模式】
java·设计模式·策略模式
fs哆哆4 小时前
在VB.NET中,有没有 ?.这个运算符
java·开发语言·.net