源码角度分析@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 …...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...