SpringBoot自动装配原理

SpringBoot自动装配原理

@SpringBootApplication

中包含了三个核心注解

@SpringBootConfiguration

声明当前的类是配置类

@ComponentScan

组件扫描,默认扫描引导类所在包以及子包

@EnableAutoConfiguration

实现SpringBoot自动化配置的核心注解

@EnableAutoConfiguration

包含一个核心注解

@Import(AutoConfigurationImportSelector.class)

将这个类注入到Spring容器中

AutoConfigurationImportSelector.class:自动配置选择器

将meta-inf/spring.factories中的配置类加载进容器

在这些配置类中一般有这些核心注解

@Configuration()标明自己是配置类

@ConditionOnClass(xxx.class)在有对应字节码文件时才会加载

在配置类中通过添加了@Bean的方法

方法上可以通过@ConditionOnMissingBean(name = beanname)设置只有环境中没有对应的bean才会加载

将方法的返回值作为bean注入到容器中

相关推荐
智慧老师3 分钟前
Spring基础分析13-Spring Security框架
java·后端·spring
lxyzcm5 分钟前
C++23新特性解析:[[assume]]属性
java·c++·spring boot·c++23
V+zmm1013438 分钟前
基于微信小程序的乡村政务服务系统springboot+论文源码调试讲解
java·微信小程序·小程序·毕业设计·ssm
Oneforlove_twoforjob1 小时前
【Java基础面试题025】什么是Java的Integer缓存池?
java·开发语言·缓存
xmh-sxh-13141 小时前
常用的缓存技术都有哪些
java
迷糊的『迷』1 小时前
vue-axios+springboot实现文件流下载
vue.js·spring boot
AiFlutter1 小时前
Flutter-底部分享弹窗(showModalBottomSheet)
java·前端·flutter
J不A秃V头A2 小时前
IntelliJ IDEA中设置激活的profile
java·intellij-idea
DARLING Zero two♡2 小时前
【优选算法】Pointer-Slice:双指针的算法切片(下)
java·数据结构·c++·算法·leetcode
小池先生2 小时前
springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
java·spring boot·后端