gpt4 book ai didi

spring - 如何将自定义 Spring 模式类型与传统 Spring 模式类型混合和匹配?

转载 作者:行者123 更新时间:2023-12-04 16:59:40 28 4
gpt4 key购买 nike

假设我有一个类(class) Person带属性nameage ,它可以像这样用 Spring 配置:

<beans:bean id="person" class="com.mycompany.Person">
<beans:property name="name" value="Mike"/>
<beans:property name="age" value="38"/>
</beans:bean>

我想要一个自定义的 Spring 模式元素,这很容易做到,允许我在我的 Spring 配置文件中包含它:
<Person name="Mike" age="38"/>

模式定义看起来像这样:
<xsd:complexType name="Person">
<xsd:complexContent>
<xsd:extension base="beans:identifiedType">
<xsd:attribute name="name" type="xsd:string"/>
<xsd:attribute name="age" type="xsd:int"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>

基于此,现在假设我想要将自定义架构元素与 Spring bean 的传统元素和属性混合和匹配的选项,因此我可以选择这样做:
<Person name="Mike">
<beans:property name="age" value="38"/>
</Person>

我该怎么做?如果没有一些主要的定制,这也许是不可能的,但我希望有一些相当简单的机制来实现这一点。我认为扩展“bean”可能是诀窍,但这看起来并不正确。

最佳答案

首先,如果您的示例是 真的所有你想做的,考虑使用 p-namespace相反,并为自己省去一些主要的头痛:

<beans:bean id="person" class="com.mycompany.Person" p:name="Mike" p:age="38"/>

是的,它看起来不如 <Person name= age= />漂亮但是没有要编写的自定义代码:-)

如果这不能满足您的要求,您正在考虑实现自己的命名空间/bean 定义解析器。 Spring 文档有一个 chapter dedicated to that这将更好地解释它然后我可以。如果您遇到任何问题,请回帖具体问题,我会尽力提供帮助。

关于spring - 如何将自定义 Spring 模式类型与传统 Spring 模式类型混合和匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1478617/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com