首页 > 其他分享 >Springboot自动配置原理

Springboot自动配置原理

时间:2024-05-12 13:08:26浏览次数:12  
标签:Springboot spring 配置 Bean 自动 EnableAutoConfiguration 注解 原理

  1. 在Spring Boot项目中的引导类上有一个注解@SpringBootApplication,这个注解是对三个注解进行了封装,分别是:
    • @SpringBootConfiguration
    • @EnableAutoConfiguration
    • @ComponentScan
  2. 其中@EnableAutoConfiguration是实现自动化配置的核心注解。
    该注解通过@Import注解导入对应的配置选择器。内部就是读取了该项目和该项目引用的jar包的的classpath路径下META-INF/spring.factories文件中的所配置的类的全类名。在这些配置类中所定义的Bean会根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。
  3. 条件判断会有像@ConditionalOnClass这样的注解,判断是否有对应的class文件,如果有则加载该类,把这个配置类的所有的Bean放入spring容器中使用。

标签:Springboot,spring,配置,Bean,自动,EnableAutoConfiguration,注解,原理
From: https://www.cnblogs.com/worshipone/p/18187702

相关文章

  • SpringBoot速记
    本篇以SpringBoot快速构建一个基础项目,在构建的同时记录相关的知识。常见的架构图: 其中,config中可以引入第三方的jar包controller中存放控制类一个简单的例子如下: mapper中存放对数据库的操作接口 pojo中是实体对象类,常与数据表对应 service中存放服务类:......
  • SpringBoot3集成WebSocket
    标签:WebSocket,Session,Postman。一、简介WebSocket通过一个TCP连接在客户端和服务器之间建立一个全双工、双向的通信通道,使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据,在WebSocket的API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创......
  • MySQL Join原理分析(缓冲块嵌套与索引嵌套循环)
    场景假设A表(1000条数据)leftjoinB表(1000条数据)。嵌套循环(Nested-LoopJoin)极简概括:顾名思义多层循环叠加,由于MySQL条数数量有限,所用for循环而不用while,在MySQL中就是多层for循环。性能问题:MySQL使用这种作为join方式最简单,A表joinB表每次join查询都需要一百万次内部关联,每次......
  • 详解Redis持久化(持久化高危漏洞利用与多种对抗方案、RDB、AOF、同步手动持久化、异步
    谨防持久化+未授权访问漏洞入侵服务器CVE编号找不到,CNVD有一个:CNVD-2015-07557(国家信息安全漏洞共享平台漏洞编号)。这是我之前写过的文章,漏洞成因、影响范围、POC与对抗方案有详解:谨防利用Redis未授权访问漏洞入侵服务器RDB(RedisDatabase、全量保存,默认方式)极简概括:通过符......
  • 事件循环(event loop)原理,并类比理解qt的信号(Signal)和槽(Slot)机制)
    背景:实际项目中要使用pyqt/pyside技术,涉及到qt和asyncio的事件循环,并需要使用到qt的信号(Signal)和槽(Slot)机制,从底层了解事件循环的原理使得后续工作更好入手。事件循环是什么?事件循环(EventLoop)是一种用于处理和调度异步任务的机制。它通常用于编写异步编程,特别是在处理IO密......
  • Microsoft Deployment Toolkit(MDT)是微软提供的一套免费的部署工具,旨在简化和自动化 Wi
    MicrosoftDeploymentToolkit(MDT)是微软提供的一套免费的部署工具,旨在简化和自动化Windows操作系统及其他Microsoft产品的部署过程。MDT可以帮助IT管理员在企业环境中轻松地部署Windows操作系统,以及必要的应用程序和设置。MDT提供了一系列工具和功能,包括:部署环......
  • springboot的链路日志
    1.背景在开发银行项目的时候有一个生成项目链路日志的需求。所谓的链路日志就是一个请求会经过多个项目的接口调用,它把这个请求内调用到的所有请求通过全局id串起来,通过全局id可以把所有涉及到的系统日志都快速的定位出来,方便线上出现问题时去排查问题。2.实现......
  • springboot使用log4j监控日志发送邮件
    实现log4j发送邮件功能大致流程:1、开启邮箱SMTP服务,获取SMTP登录密码2、引入javax.mail、javax.activation依赖3、配置log4j文件,指定邮件发送方和接收方以及发送方账号密码等4、重写SMTPAppender(不重写也能实现邮件发送功能)开启邮箱SMTP服务这里以qq邮......
  • springboot项目服务器访问速度慢-可能的解决方法
    springboot项目部署在服务器后,访问很慢或无法访问问题使用宝塔界面,尝试将打包后的jar包部署在服务器上运行时,发现访问速度不是很快,或者是直接访问不到。访问不到对应端口的springboot服务80端口也无法访问首次访问加载慢的解决方法修改jre文件找到安装的jre目......
  • Copilot - OpenAI与GitHub联合出品的自动代码生成AI+VirtualLCD - 可用于 GUI 移植的
    1、AntOS-适用8051的超轻量级实时操作系统AntOS是一款超轻量级实时操作系统,抢占式调度极简内核,专门为小型家电及轻量型物联网终端设计,适合在8051为内核的MCU上运行。项目主页: https://gitee.com/zeweni/ant-osAntOS提供层级服务,可以进行任意裁剪。内核层包含两个子系......