(2)默认标签的解析

【虚拟化生态平台】虚拟化平台esxi挂载USB硬盘 虚拟化平台安装好之后,一般情况下,只有一个硬盘在工作,其他的外接硬盘(我的只有一个ssd硬盘,其他的均是usb外接,SATA接口的硬盘是否这样我暂时不清楚哈)没有在工作,但是一个硬盘明显不够我们使用的,所以我们需要去挂载外接的硬盘来扩容。... 阅读详情

默认标签的解析是在parseDefaultElement之中进行的
这里写图片描述
分别对4种不同标签做了不同处理,最为核心的是bean标签。
这里写图片描述
(1)BeanDefinitionHolder bdHolder = delegate.parseBeanDefinitionElement(ele);
委托BeanDefinitionDelegate类的parseBeanDefinitionElement方法进行元素解析。
这里写图片描述
这里写图片描述
上面的代码说明默认bean名称是id,如果没有id选择别名的第一个作为bean的名称
checkNameUniqueness检测名称的唯一性。
这边我刚开始看的时候有个疑问,如果id为空,name也为空的时候是怎么处理?
看下后面部分
这里写图片描述
如果name依然为空,那么会使用spring的默认规则进行生成beanName。

但是这个为什么会发生在checkNameUniqueness之后呢?
这里写图片描述
这个就不清楚为什么了直接将空值传进去吗 ??

其实是空字符串不会返回this.error(),所以每次加个空值进去也没有什么关系。

总结一下步骤:
1.提取元素中的id和name属性
2.进一步解析其他所有属性并统一封装至GenericBeanDefinition类型的实例中
3.如果检测到bean没有指定beanName,那么使用默认规则为此Bean生产beanName
4.将获取到的信息封装到BeanDifinitionHolder的实例中

详细看下第二步
这里写图片描述
这里写图片描述

支持UE4.27、UE5.0、UE5.1、UE5.2、UE5.3、UE5.4、UE5.5的VS2022一键安装方法 本文提供了两种安装VS2022以支持UE5开发的方案。方案一通过百度网盘提供一键安装包,下载解压后以管理员身份运行批处理文件即可完成安装。方案二需从微软官网下载安装程序,通过创建包含特定参数的批处理文件来自定义安装组件。两种方案都需保持联网环境,建议先卸载旧版VS。安装完成后可测试打包UEC++项目Windows包。 阅读详情

相关推荐

VLA-JEPA:具身智能中潜空间世界模型的工程落地实践

世界模型是具身智能实现环境理解与因果推演的核心基础,其本质是在状态空间中建模‘动作→结果’的动力学规律。传统基于像素或文本的世界模型因高维、非平稳、弱语义等缺陷,在真实机器人场景中鲁棒性差、部署成本高。JEPA(联合嵌入预测架构)通过构建物理约束的潜空间,将视觉-语言-动作(VLA)信号统一编码为低维、可微、可解释的状态表征,显著提升模型对抖动、遮挡、光照突变等干扰的适应能力,并支持实时闭环控制。该范式已在UR5e、Franka等多构型机械臂及Jetson边缘平台完成实测验证,成为VLA系统从实验室走向产线

weixin_34357928的博客 336

spring 源码分析--IOC容器初始化六

 上一节将xml文档解析为DOM ,并且创建了一个 BeanDefinitionParserDelegate 类型的对象,在这一节,将使用这个对象来完成对bean的装载工作。   2.1.1.1 parseBeanDefinitions (root, delegate): 该方法体完成注册过程。   =====================================...

iteye_17060的博客 146

【STABLE_BASELINE3】强化学习算法实战:模型的保存,读取,再训练

STABLE-BASELINE3,模型读取,再训练:有时候需要在已经训练好的模型基础上进行再次训练。

Kiek17的博客 4867

Spring源码解析笔记2——默认标签的解析

继续前面的this.parseDefaultElement(ele, delegate)讨论。 //分别对4种不同的标签(import,alias,bean,beans)做了不同的处理。 private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { if(deleg

xyh的博客 689

ANSYS Discovery 2023R1 保姆级教程:手把手教你玩转几何模型参数化(附避坑指南)

本文提供ANSYS Discovery 2023R1几何模型参数化的全面教程,涵盖基础环境搭建、核心操作解析及高级应用场景。重点讲解参数化建模中的常见问题与避坑方案,帮助用户高效掌握Workbench与Discovery的协同使用技巧,提升工程仿真效率。

weixin_29204205的博客 749

平台跳跃游戏中的自动寻路,与地图导航扩展

平台游戏:主要的游戏方式是在2D平面上使用各种方式在悬浮平台上进行移动和穿过各种障碍。 现如的平台游戏中的平台特性与种类是很多的,像马里奥(FC)的单向支撑不可穿透的,或魂斗罗(FC)单向支撑可穿透的… \ 超级玛丽 魂斗罗 空洞骑士 蔚蓝 本博文 支撑 上 上 上 左、上、右 上 穿透 无 上、下 无 上(部分) 上下 所以本文主要以向上支撑并上下穿透的平台特性来进行实现 需求分析 在关卡设计后,地形的数据需要自动识别 地形中的平台可上下穿透移动,并可向上站立 平台的移动路..

MOV的博客 3062

【PowerDesigner】Constraint name uniqueness问题及处理

使用PowerDesigner生成数据库脚本时报 Constraint name uniqueness 错误: 双击每行错误,发现外键引用的名字有重复的: 惯性去网上找解决办法,找到的主要是两个方法: 1.使用Automatic Correction 右键错误行,菜单中选择Automatic Correction,自动更正错误。 这样Constraint name 就会自

sdm_seven的专栏 1万+

ABAP - Function ALV 11 - 单元格下拉框

【代码】ABAP - Function ALV 11 - 单元格下拉框。

HeathlX的博客 1812

Spring-IOC之bean元素id和name属性解析规则

在这里插入代码片

Daniele的博客 1700

基于Playwright和反爬虫规避技术的雪球股票讨论数据采集方案

随着量化投资和社交投资的兴起,雪球作为中国领先的投资社交平台,其用户讨论数据成为研究市场情绪的重要来源。本文将详细介绍如何使用最新的Playwright技术和反爬虫规避策略,构建一个高效、稳定的雪球股票讨论爬虫系统。本文详细介绍了基于Playwright的雪球股票讨论爬虫实现方案,涵盖了从基础配置到高级反爬虫策略的各个方面。AI驱动的反爬虫对抗更智能的请求调度算法区块链技术在数据溯源中的应用联邦学习在数据采集中的运用。

2201_76125261的博客 1005

Ubuntu 系统下安装 OpenClaw(原 Clawdbot)的详细指南

Ubuntu 系统下安装 OpenClaw(原 Clawdbot)的详细指南

Science prince的博客 3535

Power Designer Check Model提示Role name uniqueness

今天在用PowerDesign画类图时,生成Java代码出现了Role name uniqueness错误,根据提示是使用关联的地方出现了错误。 这是发生错误时的类图 根据提示应该是角色什么要唯一,应该是类中的出现了相同的变量名导致的。后来将两个类中的变量名后分别添加1,2后生成通过,但是代码中还是出现了以前的变量名,到这里才发现导致这个错误的真正原因是使用关联时代码会自动生成一个成员

qq_31258245的博客 1423

路径规划 | 图解A*、Dijkstra、GBFS算法的异同(附C++/Python/Matlab仿真)

图解A*、Dijkstra、GBFS算法原理,分析三种算法异同,提供C++/Python/Matlab仿真实现

FRIGIDWINTER的博客 2万+

2.默认标签的解析(BeanDefinition的创建)

spring 默认标签的解析,主要从源码方面详细的解析了由xml转化为一个个BeanDefinition的过程

qq_37133838的博客 1119

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Spring源码解析——2、默认标签的解析

Spring源码深度解析——2、默认标签的解析 主要在BeanDefinitionParserDelegate 这个类中处理。 默认标签的解析是在parseDefaultElement函数中进行的,函数逻辑一目了然,分别对四种不同标签(import、alias、bean和beans)做了不同的处理。 1、bean标签的解析及注册 1.1解析beanDefinition 在函数parseBeanD...

大智的博客 269

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Spring——2. 默认标签的解析

文章目录1. bean标签的解析及注册1.1 解析BeanDefinition1.1.1 创建用于承载属性的 BeanDefinition1.1.1.1 AbstractBeanDefinition1.1.1.2 GenericBeanDefinition1.1.2 解析各种属性1.1.3 解析子元素 meta1.1.4 解析子元素 lookup-method1.1.5 解析子元素 replaced-method1.1.6 解析子元素 constructor-arg1.1.7 解析子元素 property1

m0_52325992的博客 366

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

spring框架2 - 默认标签解析

BeanDefinition是配置文件中元素标签在Spring容器中的表现形式,也就是说,它 是用来承载bean信息的。其中解析内容包括:singleton属性、scope属性、abstract属性、lazy-init属性、autowire属性、 * depends-on属性、autowire-candidate属性、primary属性、init-method属性、destroy-method属性、factory-method属性、factory-bean属性。举例:bean.xml中的一个bean。

QiAn的博客 922

spring源码-2.2.默认标签的解析

上一节中,我们详细分析了spring在解析xml,创建beanFactory的前期准备工作,这一节我们将会详细分析一下spring是如何解析系统默认标签的。 首先进入解析默认标签方法的入口,parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate): private void parseDefaultElement...

mazhen1991的博客 1429

Spring源码深度解析(2)——默认标签的解析

接着上一节,我们继续讲解 parseDefaultElement是如何实现的。 首先我们需要知道:默认标签的解析是在 parseDefaultElement 函数中进行的,函数中的功能逻辑一目了然,分别对4种不同的标签:【import】、【alias】、【bean】和【beans】做了不同的处理。 上面的图是上一节中的最后一张图,我们从这张图继续分析。 因为这四种标签中,bean 标签最难理解...

想当厨子的程序媛 324

2-Spring源码解析之默认标签的解析(1)

Spring中的标签包括【默认标签】和【自定义标签】两种。 默认标签的解析是在 DefaultBeanDefinitionDocumentReader 类的 parseDefaultNamespace 方法中进行。 我们先来看一下parseDefaultNamespace方法的具体实现。 private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { // 对 import 标签

想当厨子的程序媛 435

Spring源码解析(2)之默认标签的解析(一)

二、默认标签的解析 spring中的标签包含默认标签和自定义标签两种,而两种的标签的解析方法打不通,这边重点详细的分析默认标签的解析过程 默认标签解析是在DefaultBeanDefinitionDocumentReader类的parseDefaultElement方法中,方法中对4中不同的标签做了不同的处理(import、alias、bean和beans)。源码如下: private vo...

qq_25011427的博客 591

Spring源码学习(2)——默认标签的解析

上一篇随笔说到Spring对于默认标签和自定义标签的解析方法是不同的,这里详细看一下Spring对于默认标签的解析。 private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { if(delegate.nodeNameEquals(ele, "impor...

weixin_34293911的博客 131

spring源码学习(2):默认标签的解析,注册BeanDefinition

spring中的标签包括默认标签和自定义标签两种,默认标签的解析是在parseDefaultElement函数中进行的 private void parseDefaultElement(Element ele, BeanDefinitionParserDelegate delegate) { //对import标签的处理 if (delegate.nodeNameEquals(ele, IMPORT_ELEMENT)) { importBeanDefinitionResource(ele);

qq_35217284的博客 359

spring5/springboot2源码学习 -- xml文件的解析之默认标签的解析

xml文件的解析之bean标签的解析

yuxiuzhiai的博客 624

Spring之默认标签的解析(三) bean标签的解析及注册(2)—— BeanDefinition和其属性的解析

上文中我们看了函数**parseBeanDefinitionElement**,其中调用了上述方法**createBeanDefinition**,目的就是为了创建**BeanDefinition**,而**BeanDefinition**的作用是什么呢?

qq_40540178的博客 435

Spring源码解析(2)之默认标签的解析(二)

首先感谢 《Spring源码深度解析》郝佳,让我对spring源码有了更深的理解,本篇文章主要是对《Spring源码深度解析》解读的笔记以及自己对书本解读后的理解,本篇文章是对上面一篇Spring源码解析(2)之默认标签的解析(一)的衔接。 ⑥:解析子元素constructor-arg       constructor-arg的使用: &lt;bean id="car" class="zhu...

qq_25011427的博客 1043
上一篇: Profile属性的使用
下一篇: 自定义标签的使用
sicofield
博客等级 码龄18年 169粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值