首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能为Spring的jdbc:embedded-database标记指定多个名称?

为什么我不能为Spring的jdbc:embedded-database标记指定多个名称?
EN

Stack Overflow用户
提问于 2014-08-11 01:14:18
回答 1查看 51关注 0票数 0

在我的项目中,我使用一个HSQLDB实例来进行单元测试,我通过方便地声明一个<jdbc:embedded-database>标记来实现这一点,就像Spring的文档所说的here

现在,出于某种原因,我想给它起多个名字:name="a,b,c",就像我们通常对普通的Spring bean所做的那样。然而,我发现标签不允许"name“属性。

也许我可以使用别名来解决这个问题,但对我来说这似乎很荒谬。

编辑:我想知道为什么Spring不为许多特殊的标签提供“名称”,比如<jdbc:embedded-database><util:list>等。

EN

回答 1

Stack Overflow用户

发布于 2014-08-11 04:43:15

你的想法不是一种变通的办法,也一点也不可笑。实际上,Spring解析bean定义的名称,使用逗号作为分隔符来分隔它,并在内部为每个" name“创建一个别名。

如果您打开org.springframework.beans.factory.xml.AbstractBeanDefinitionParser.parse(Element, ParserContext)的源代码,您将在第69行看到以下内容:

代码语言:javascript
复制
String[] aliases = new String[0];
String name = element.getAttribute(NAME_ATTRIBUTE);
if (StringUtils.hasLength(name)) {
    aliases = StringUtils.trimArrayElements(StringUtils.commaDelimitedListToStringArray(name));
}
BeanDefinitionHolder holder = new BeanDefinitionHolder(definition, id, aliases);

这就是你从一开始就建议的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25231091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档