首页 > 其他分享 >spring boot自动装配原理

spring boot自动装配原理

时间:2024-01-09 14:06:01浏览次数:32  
标签:装配 容器 spring 配置 boot 自动 注解

学习笔记

1@SpringBootConfiguration:该注解上有一个 @Configuration注解,表示这个spring boot启动类是一个配置类,最终要被注入到spring容器中。

     2@EnableAutoConfiguration:表示开启自动配置

     3@AutoConfigurationPackage,该注解上有一个@Import(AutoConfigurationPackages.Registrar.class)注解,

其中 Registrar 类的作用是将启动类所在包下的所有子包的组件扫描注入到spring容器中。

     4@Import(AutoConfigurationImportSelector.class):其中AutoConfigurationImportSelector类中有一个getCandidateConfigurations()方法,

该方法通过SpringFactoriesLoader.loadFactoryNames()方法查找位于META-INF/spring.factories文件中的所有自动配置类,并加载这些类。

所以spring boot在整个的启动过程中,其实就是在类路径的META-INF/spring.factories  

文件中找到EnableAutoConfiguration对应的所有的自动配置类,然后将所有自动配置类加载到spring容器中。

标签:装配,容器,spring,配置,boot,自动,注解
From: https://blog.51cto.com/u_16505905/9159494

相关文章

  • 【Spring技术专题】「实战开发系列」保姆级教你SpringBoot整合Mybatis框架实现多数据
    Mybatis是什么Mybatis是一个基于JDBC实现的,支持普通SQL查询、存储过程和高级映射的优秀持久层框架,去掉了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。Mybatis主要思想是将程序中大量的SQL语句剥离出来,配置在配置文件中,以实现SQL的灵活配置。在所有ORM框......
  • Spring MVC 源码分析 - LocaleResolver 组件
    LocaleResolver组件LocaleResolver 组件,本地化(国际化)解析器,提供国际化支持回顾先来回顾一下在 DispatcherServlet 中处理请求的过程中哪里使用到 LocaleResolver 组件,可以回到《一个请求的旅行过程》中的 DispatcherServlet 的 processDispatchResult 方法中看看,如下:priv......
  • 基于SpringBoot+Vue的航班订票管理系统设计实现(源码+lw+部署文档+讲解等)
    (文章目录)前言:heartpulse:博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌:heartpulse:......
  • Java+springboot开发医院智能导诊小程序源码
    智慧医院如何实现智能导诊服务?1、数据收集和整合:医院需要收集和整合患者的医疗数据,包括病历、化验结果、影像资料等。同时,还可以整合相关的医学数据库和知识库,以便为导诊提供支持。2、患者信息采集:在患者来院时,可以通过智能问诊系统收集患者的基本信息、症状描述、病史等。这可以......
  • Spring Boot中使用JPA进行数据库操作
    在Java后端开发中,数据库操作是一个非常重要的环节。SpringBoot作为当前非常流行的轻量级Java开发框架,提供了很多便捷的工具和功能,使得数据库操作变得更加简单快捷。在SpringBoot中,我们可以使用JPA(JavaPersistenceAPI)来进行数据库操作。JPA是一种将对象持久化到数据库的方法,它遵......
  • MyBatis—Spring 动态数据源事务的处理
    在一般的Spring应用中,如果底层数据库访问采用的是MyBatis,那么在大多数情况下,只使用一个单独的数据源,Spring的事务管理在大多数情况下都是有效的。然而,在一些复杂的业务场景下,如需要在某一时刻访问不同的数据库,由于Spring对于事务管理实现的方式,可能不能达到预期的效果。本文......
  • 闪速优选--五天学会SpringCloud实战
    本专栏带你用SpringCloudAlibaba搭建一套项目,让你五天掌握微服务的使用。微服务是很重要的技术,学会微服务会大大提升个人竞争力,大大提高简历筛选和面试通过率。项目名字:闪速优选。SpringCloudAlibaba在2020年之后的微服务项目中占主流,学它是最好的选择。教程地址:SpringCloud项目......
  • 在现有SpringBoot项目中,快速添加所需依赖项
    如果在SpringBoot项目开发过程中,缺少某些依赖项,如SpringWeb、MybatisFramwork等····,不用手动在pom.xml文件中导入依赖前提:创建的项目为正常的SpringBoot项目,我用的版本是3.2.11.可以直接在pom.xml文件中,找到<dependencies>标签,会发现有个提示2.点击后会出现跟创建项目时添加......
  • SpringBoot: 通过MyBatis访问ClickHouse
    一、ClickHouse中建表,添加数据二、SpringBoot项目添加mybatis、clickhouse、druid相关依赖<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.6</version><......
  • springcloud项项目使用脚本启动.sh,报错nested exception is org.apache.ibatis.excep
    问题:项目在使用java-jar启动每个jar包时,项目可正常访问,但要改为使用脚本,启动时,程序就报这个错了nestedexceptionisorg.apache.ibatis.exceptions.PersistenceException:###Errorqueryingdatabase.Cause:com.baomidou.dynamic.datasource.exception.CannotFindDataSource......