源码角度分析@configuration和@component不同
1.@configuration是@component的内部类,@configuration包含@component注解。
2.@configuration中所有带@Bean都会被CGLIB动态代理,调用此配置类中的方法都会返回同一个实例。@component不会被代理,调用配置类中的方法都会新建一个实例。
3.@configuration标注的类要求:
1.必须是类(不可以是工厂返回的实例),不能是final类(final不可CGLIB动态代理)
2.配置类不可以是native方法
3.嵌套配置类需要声明为static
4.@Bean方法不会进一步反过来创建配置类,即便有@configuration,只会作为不同的Bean
加载流程:
1.再springboot程序,run方法中,有个refreshcontext(),的refresh()
2.obtainFreshBeanFactory 将ConfigurationClassPostProcessor 注册到beanDefinition中
3.invokeBeanFactoryPostProcessors 实例化ConfigurationClassPostProcessor ,将配置类带@configuration的配置类添加标志位FULL,@component、@ComponentScan添加Lite。
4.通过invokeBeanFactoryPostProcessors将FULL的配置类通过Enhancer再字节码层面生成CGLIB子类,替换原来的@Bean方法。
5.finishBeanFactoryInitialization实例化非懒加载对象。
相关文章:
源码角度分析@configuration和@component不同
1.configuration是component的内部类,configuration包含component注解。 2.configuration中所有带Bean都会被CGLIB动态代理,调用此配置类中的方法都会返回同一个实例。component不会被代理,调用配置类中的方法都会新建一个实例。 3.configura…...
实现分布式事务:Java与MySQL的XA事务协调
目录 一、什么是XA事务 二、Java中的XA事务支持 三、MySQL的XA事务协调 四、注意事项和最佳实践 五、基于 java 语言的开发工具 六、小结 分布式事务是在跨多个数据库或服务之间保持一致性的重要机制。Java与MySQL的XA(eXtended Architecture)事务…...
如何通过CRM系统进行成功的客户生命周期管理?
吸引新客户,提供无与伦比的服务或商品,以及建立成功的客户关系,是每个企业努力追求的目标。然而,实现这些目标需要的不仅仅是良好的愿景,还需要实施客户生命周期管理流程。 什么是客户生命周期管理? 客户…...
Leetcode 977. 有序数组的平方
题目: Leetcode 977. 有序数组的平方 描述: 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序 思路: 双指针法 数组其实是有序的, 只不过负数平方之…...
vue3中使用toValue
toValue() 是一个在 3.3 版本中新增的 API。它的设计目的是将 ref 或 getter 规范化为值。如果参数是 ref,它会返回 ref 的值;如果参数是函数,它会调用函数并返回其返回值 示例...
阿里云国际版CDN使用教程!
当网站流量达到一定值后,势必会造成网站访问卡堵,这时候阿里云CDN将会一个很好的选择,阿里云 CDN 是由全球分布式边缘节点组成的虚拟网络。阿里云 CDN 可减少源站负载,防止网络拥塞,使用阿里云 CDN 加速图像、小文件、…...
【docker】Dockerfile构建镜像常用指令:
文章目录 一、常用命令:二、注意事项:三、add和copy的区别:【1】ADD 指令支持自动解压缩功能【2】ADD 指令可以从 URL 复制内容【3】 ADD 指令具有隐式的文件拷贝功能 一、常用命令: Dockerfile是一个文本文件,包含了一条条的指令,在基于指定的镜像上&am…...
Java课题笔记~ 会话跟踪
3.1 Cookie 【案例1 记住密码】 实现效果 当勾选“记住密码”复选框时,下次访问登录页面,会自动记住账号,密码信息。 【案例2 上次访问时间】 实现效果 首次登录,显示“欢迎您,XXX” 下次登录,显示“欢迎您…...
HbuildX生成安卓签名证书
HbuildX生成安卓签名证书 安装和配置JRE环境 根据此链接安装和配置JRE环境 生成签名证书 keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystoretestalias是证书别名,可修改为自己想设置的字符,建议…...
在Ruoyi中采用Ajax动态生成Echarts图表实践
前言 在之前博文中,我们讲解了如何使用java在后台进行Echarts的图表生成组件,博文如下: 序号 博客连接1一款基于JAVA开发的Echarts后台生成框架2Ruoyi单体项目与Echarts4.2.1地图集成时的思路及解决办法3解决Ruoyi单体版本集成Echarts多图表时…...
资讯速递 | ArkUI-X 预览版已正式开源!
OpenHarmony项目群技术指导委员会(以下简称“TSC”)-跨平台应用开发框架TSG所孵化项目 —— ArkUI-X,近期已正式开源 ,开发者基于一套主代码,就可以将在OpenHarmony上开发的精美、高性能应用同时运行在Android、iOS等其…...
HTML <select> 标签
实例 创建带有 4 个选项的选择列表: <select><option value ="volvo">Volvo</option><option value ="saab">Saab</option><option value="opel">Opel</option><option value="audi"…...
Flutter:文件上传与下载(下载后预览)
Dio dio是一个强大的Dart Http请求库,提供了丰富的功能和易于使用的API,支持文件上传和下载。 这个就不介绍了,网上有很多的封装案例。 background_downloader 简介 适用于iOS,Android,MacOS,Windows和L…...
[前端系列第6弹]Ajax简明教程:轻松实现Web页面的异步交互
在这篇文章中,我将介绍Ajax的基本概念、原理、优缺点、实现方法和应用场景,以及如何使用它来实现Web页面的异步交互。还将给一些简单而实用的例子,让你可以跟着我一步一步地编写自己的Ajax代码。 目录 一、什么是Ajax 二、如何使用Ajax &a…...
ssh-keygen 做好免密登录后不生效
免密说明 通常情况下,我们ssh到其他服务器需要知道服务器的用户名和密码。对于需要经常登录的服务器每次都输入密码比较麻烦,因此我们可以在两台服务器上做免密登录,即在A服务器可以免密登录B服务器。 在A服务器上登录B服务器时,…...
【Java可执行命令】(十八)可视化监控和管理工具 jconsole:获取 JVM的内存使用情况、线程活动、GC 行为等重要指标的可视化工具 ~
Java可执行命令之jconsole 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法格式3.2 注意事项 4️⃣ 应用场景🌾 总结 1️⃣ 概念 jconsole 是 Java Development Kit (JDK) 自带的一款图形化监控和管理工具。它旨在提供一个简单而强大的界面,用于监视和管…...
leetcode做题笔记66
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 思路一:模拟题意 int* plusOne(i…...
【docker】设置 docker 国内镜像报错,解决方案
一、报错: [rootlocalhost ~]# systemctl restart docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.二、原因…...
mac安装nvm管理工具遇到的问题和解决方法
nvm 是一款可以管理多版本node的工具,因为是刚买没多久的电脑之前用的都是windows,昨天折腾了一下午终于倒腾好了 第一步: 卸载电脑已有的node;访问nvm脚本网址,另存为到电脑上任何目录,我是放在桌面上的…...
DocX 生成Word
当然,这里是一个使用DocX库在.NET Core中操作Word文档的简单示例: 首先,确保你在项目中安装了DocX库。你可以在NuGet包管理器中搜索并安装DocX。 然后,使用以下代码来创建一个简单的Word文档并添加一些内容: using …...
(六)文件与搜索 - 信息处理的正确姿势
(六)文件与搜索 - 信息处理的正确姿势 一、别再cat/grep了:Agent原生工具才是正解 如果你是后端开发者,一定对这几条命令刻在骨子里: cat config.yaml # 看文件内容 grep -r "timeout" . #…...
Telegram数据恢复避坑指南:为什么专业工具有时也救不了你的聊天记录?
Telegram数据恢复的深层解析:当技术遇上物理极限 "我的聊天记录还能找回来吗?"这个看似简单的问题背后,隐藏着从密码学到存储介质的复杂技术链条。当你在Telegram上按下"删除"的那一刻,实际上触发的是一系列精…...
车联网MQTT 消息处理的高并发优化
背景 在车联网场景中,数采平台需要实时接收数百至上千辆车辆的上报数据,涵盖实时遥测、心跳、故障、状态变更等多种消息类型。每辆车按 10~30 秒间隔上报,千辆车并发意味着每秒需要处理数十到上百条 MQTT 消息,且每条消息需经过解…...
minimax_image插件基本上能做到无AI感出图了
minimax_image插件介绍minimax_image插件能够通过调用minimax模型生成图像,注意:使用时需要提供minimax的 api key (api 密钥)和 group id (组id)。如何安装 minimax_image 插件步骤 1:进入工具市场在 InfiniSynapse (网页版&…...
如何用html-to-docx实现HTML到Word文档的无缝转换?
如何用html-to-docx实现HTML到Word文档的无缝转换? 【免费下载链接】html-to-docx HTML to DOCX converter 项目地址: https://gitcode.com/gh_mirrors/ht/html-to-docx 你是否曾经需要将网页内容或HTML格式的报告转换为标准的Word文档,却遭遇了格…...
DeepSeek开源项目成功之道:技术策略与社区运营
1. 深度拆解DeepSeek现象级成功的三大支柱去年偶然在GitHub Trending看到DeepSeek项目时,其星标增长速度让我这个老开源人都感到震惊。这个最初由几名工程师发起的项目,在短短半年内就成长为该领域基础设施级别的存在。经过对其发展轨迹的复盘࿰…...
2026最强全能 AI Agent:Codex 零基础完整实战教程(基于 GPT-5.5 与 Image-2 模型)
Codex 被誉为2026年最值得上手的 AI 工具,它不仅是一个编程 Agent,更是一个几乎可以替换掉任何对话工具的全能 AI。配合高性价比的定价机制和充足的 Token 额度,只要你能想到的场景,它都能帮你自动化完成。 本文将带你从零开始&a…...
在aarch64 Linux机器上安装kiwix zim格式文件阅读工具的两种方法及问题的解决
zim格式文件是kiwix组织开发的一种百科页面离线阅读格式,下载页面https://download.kiwix.org/ 提供多个平台的阅读工具kiwix-desktop,如windows有直接解压可用的绿色软件包,macos有appimage,但是未提供aarch64 Linux 二进制文件,只提供了flatpak 包。 方法1:使用浏览器…...
梯度下降算法原理与实践指南
1. 梯度下降的本质与直观理解梯度下降算法就像一位蒙着眼睛的滑雪者试图从山顶安全滑到山脚。这位滑雪者无法直接看到整座山的全貌,只能通过脚下的坡度感知当前所处位置的倾斜方向。每次他都会沿着最陡峭的下坡方向迈出一小步,通过不断重复这个过程&…...
别再只算极差了!用SPSSAU三因素方差分析,5分钟搞定正交试验结果解读
正交试验数据分析进阶:从极差分析到方差分析的实战指南 在工程优化和科研实验中,正交试验设计因其高效性被广泛应用。许多研究者习惯使用极差分析法处理正交试验数据——这种方法直观简单,只需计算各因素水平下指标的平均值,然后比…...
