springBoot自动配置过程介绍
什么是自动配置
以前整合spring + mybatis框架时候,需要加很多的bean, 比如说sqlSessionFactory等等
现在springboot帮我们干了,我们只需要引入对应的starter就可以了。


springBoot可以帮我们配置好了一些bean. 如mysql, mogondb相关操作等等,目前有100多个。
不需要我们一个一个的import:
单个导入效率太低了。
如何实现批量导入?
@import(AutoConfigurationImportSelector.class)

通过AutoConfigurationImportSelector.selectImports方法导入配置类集合。
当然其他jar里面也可以有配置类,不一定都会在starter里面。
需要其他jar里面主动告诉springBoot,说明是配置类:文件路径为meta-inf/spirng.factories

寻找步骤
1 jar找文件
meta-inf/spirng.factories
2 找key

values是配置类。

4 去重

5 classLoader加载类-找到自动配置类名字

6过滤无关的配置类
先看依赖,看pom里面是否有,然后再看是否有关键类。


有135个配置类,无关配置类很多,

通过spring-autoconfigure-metadata.propertes文件
先其他jvm, 在启动spring容器,导致速度比较慢。
其他
springBoot3.0后,使用了gravVM技术,在编译时候就开始把bean扫描出来。后面启动时候直接注册加载bean,不需要再进行扫描
相关文章:
springBoot自动配置过程介绍
什么是自动配置 以前整合spring mybatis框架时候,需要加很多的bean, 比如说sqlSessionFactory等等 现在springboot帮我们干了,我们只需要引入对应的starter就可以了。 springBoot可以帮我们配置好了一些bean. 如mysql, mogondb相关操作等等ÿ…...
PostgreSQL最后的救命稻草 — pg_resetwal
pg_resetwal— 重置 PostgreSQL 数据库集群的预写日志和其他控制信息 适用版本:PostgreSQL 12/13/14/15语法 pg_resetwal [ -f | --force ] [ -n | --dry-run ] [option...] [ -D | --pgdata ]datadir描述pg_resetwal清除预写日志 WAL,并可选地重置pg_c…...
彻底关闭Windows更新
一、关闭Windows Update服务 1、按“Windows R”键,打开运行对话框,并输入“services.msc”,然后再单击“确定”。 2、在弹出的服务窗口中,找到“Windows Update”选项并双击打开它。 3、在弹出的“Windows Update的属性”对话框…...
Java正则表达式语法
Java正则表达式的语法与示例 | |目录 1匹配验证-验证Email是否正确 2在字符串中查询字符或者字符串 3常用正则表达式 4正则表达式语法 1匹配验证-验证Email是否正确 public static void main(String[] args) { // 要验证的字符串 String str "servicexsoftlab.net&q…...
【2023-3-29】JavaScript使用promise顺序调用函数并抛出异常
JavaScript使用promise顺序调用函数并抛出异常 场景 新建或者编辑时,一个页面中存在多个表单,每个表单都有单独进行表单验证。点击提交时,若有一个表单校验失败,则不能提交。 ps:为啥不放在一个表单中? (…...
Python实现GWO智能灰狼优化算法优化随机森林分类模型(RandomForestClassifier算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 灰狼优化算法(GWO),由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能…...
从redis到epoll到mmap
redis为什么这么快? 比较容易答出的答案 1)纯粹的内存操作 2)单线程操作,不用考虑线程切换 其他优势 3)I/O 多路复用,使用epoll 4)Reactor 设计模式 I/O 多路复用有三种 select、poll、epoll select:使用数组存储轮询 poll:使用链表轮询 epo…...
STM32CubeMX快速构造工程模板(一)
STM32CubeMX作为一个免费开源的软件,能够可视化配置STM32或其他产品硬件资源,能过快速地构造工程模板,很是方便!!! 目录 STM32CubeMX快速构造工程模板 首先第一步,打开软件-点击按钮-输入型号-双击打开。...
Java Web中的ServletContext对象
目录 ServletContext对象 获取上下文初始化参数的相关方法 创建ServletContext对象 1)通过 GenericServlet 提供的 getServletContext() 方法 2)通过 ServletConfig 提供的 getServletContext() 方法 3)通过 HttpSession 提供的 getServletCo…...
回归预测 | MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测
回归预测 | MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测 目录回归预测 | MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测效果一览基本介绍程序设计参考资料效果一览 基本介绍 MATLAB实现PSO-RF粒子群算法优化随机森林多输入单输出回归预测 粒子…...
在小公司工作3年,从事软件测试5年了,才发现自己还是处于“初级“水平,是不是该放弃....
毕业前三年,从早到晚,加班到深夜,一年又一年,直至刚入职场的首个黄金三年过年都去了,而职位却仍在原地踏步。尽管感觉自己努力过,但是实际上,自身的能力从没得到过多少提升。 所以在无数个夜晚…...
基于 OpenCV 与 Java 两个语言版本实现获取某一图片特定区域的颜色对比度
本文目录一、什么是对比度二、什么是颜色直方图三、如何通过RGB计算颜色对比度什么是HSV、Lab颜色空间四、OpenCV代码五、Java代码5.1 平滑处理5.2 完整代码一、什么是对比度 对比度是指图像中不同区域之间的明暗差异程度,它是图像质量中的重要指标之一。除了颜色对…...
Book:实战Java高并发程序设计(第二版)
实战Java高并发程序设计(第二版)为什么会有并行计算?并行计算需要回答的问题基本概念并发级别有哪些?Amdahl定律和Gustafson定律Java并发三特性进程和线程线程的生命周期Thread类run()与start()的区别为什么会有并行计算ÿ…...
LeetCode 831. Masking Personal Information【字符串,正则表达式】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...
递增三元组
[蓝桥杯 2018 省 B] 递增三元组 题目描述 给定三个整数数组 A[A1,A2,⋯,AN]A [A_1, A_2,\cdots, A_N]A[A1,A2,⋯,AN],B[B1,B2,⋯,BN]B [B_1, B_2,\cdots, B_N]B[B1,B2,⋯,BN],C[C1,C2,⋯,CN]C [C_1, C_2,\cdots,C_N]C[C1,C2,⋯,CN…...
java源码阅读 - TreeSet
往期文章 用最简单的话讲最明白的红黑树java源码阅读 - HashMap数据结构 - 堆与堆排序 文章目录往期文章一、介绍二、类的声明三、成员变量四、构造函数五、常用方法1. NavigableSet接口的实现2. SortedSet接口的实现六、总结一、介绍 在上期文章中,我们从源码层面…...
写毕业论文经验贴
首先说一句不要靠近word,会变得不幸。最好用latex写,不过我当时懒得下载latex了,于是后期改格式花了点时间 写论文之前 事先把所有的论文都查好并且整理好,论文第一、二章写起来就会很快; 把实验做顺溜,实…...
2.7 进程退出、孤儿进程、僵尸进程+2.8 wait函数+2.9 waitpid函数
1.进程退出 子进程退出时:父进程帮助子进程回收内核区的资源 exit.c /*#include <stdlib.h>void exit(int status);#include <unistd.h>void _exit(int status);status参数:是进程退出时的一个状态信息。父进程回收子进程资源的时候可以获取…...
【新2023Q2模拟题JAVA】华为OD机试 - 预订酒店
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:预订酒店 题目 放暑假了,橡…...
一个完整的渗透学习路线是怎样的?如何成为安全渗透工程师?
前言 1/我是如何学习黑客和渗透? 我是如何学习黑客和渗透测试的,在这里,我就把我的学习路线写一下,让新手和小白们不再迷茫,少走弯路,拒绝时间上的浪费! 2/学习常见渗透工具的使用 注意&…...
多层PCB板层叠结构详解:如何选择适合你的设计?
多层PCB板层叠结构详解:如何选择适合你的设计? 在电子设计领域,PCB(印制电路板)是连接各种电子元器件的核心载体。随着电子产品功能的日益复杂,简单的单层或双层PCB已无法满足现代设计需求,多层…...
实战分享:如何用本地替换和插桩调试搞定Kasada最新版x-kpsdk-cd环境检测
逆向工程实战:Kasada最新版x-kpsdk-cd环境检测的深度调试策略 在当今Web安全防护体系中,Kasada作为新一代反自动化攻击解决方案,其x-kpsdk-cd机制通过动态加密和运行时环境检测构建了强大的防御层。面对从280位扩展到294位的加密数组和Proxy保…...
MSSQL03:SQLServer数据库中的高级语法及其技巧
目录 一、日期相关 1.查询当前日期相关数据 2.查询特定时间区间 3.时间加减法 (1)加法 (2)减法 4.格式化日期 二、数据类型转化 1.Int -> Decimal 2.DateTime->OtherTime 3.DateTime->string 三、条件判断相关…...
【SOC锁死SPORT、ECO不生效?10年VCU老兵:模式管理不是切个开关那么简单!】
SOC锁死SPORT、ECO不生效?10年VCU老兵:模式管理不是切个开关那么简单! 副标题:10年老兵深度拆解 | 标定测试故障产品定义 作者 新能源汽车研发测试 10 年高级工程师 关键词 #VCU车辆模式管理#驾驶模式切换逻辑#SOC阈值标定#扭矩Map#VCU测试标定#新能源三电测试#整车能…...
AI Agent架构实战教程(非常详细),从被动唤醒到主动守望,收藏这一篇就够了!
在LLM驱动的应用进入深水区后,开发者们发现:即便Agent再聪明,如果它只能停留在“你问我答”的被动模式,就永远无法触达“私人助理”的核心体验。 从OpenAI的ChatGPT Tasks到百度的“心响”产品、腾讯元宝定时任务,行业…...
OpCore-Simplify:开源系统硬件适配自动化的技术突破
OpCore-Simplify:开源系统硬件适配自动化的技术突破 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 在开源系统定制领域,硬件兼…...
为什么数据质量成为人工智能领域最重要的问题
简而言之:传统的基于人工编写规则和被动检查的数据质量体系,从未针对智能体人工智能进行设计。到2026年,当自主代理处理错误数据时,没有人会介入以发现问题。那些在人工智能领域取得成功的组织,并非从更好的模型入手&a…...
【实战指南】League Akari:英雄联盟智能工具全解析
【实战指南】League Akari:英雄联盟智能工具全解析 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 一、价值定位:重新定…...
手把手教你用MCP+Selenium打造专属内容发布机器人(附避坑指南)
从零构建MCPSelenium自动化发布系统的实战指南 在当今内容为王的数字时代,如何高效管理多平台内容发布成为创作者和企业的核心需求。本文将带您深入探索如何利用MCP协议与Selenium技术栈,打造一个高度定制化的自动化内容发布系统,特别针对小红…...
3步搭建JNPF工作流:新手也能玩转全流程类型
接触过不少刚入门低代码的开发和企业数字化人员,一提搭建工作流就犯怵:分不清流程类型适配场景,摸不透决策流的规则配置,搞不定自由流的灵活流转,最后要么搭出的流程适配性差,要么冗余臃肿跑不通。 其实基于…...
