Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring中将自定义BeanDefinitionParser与BeanDefinitionDecorator结合起来_Java_Spring - Fatal编程技术网

Java 如何在Spring中将自定义BeanDefinitionParser与BeanDefinitionDecorator结合起来

Java 如何在Spring中将自定义BeanDefinitionParser与BeanDefinitionDecorator结合起来,java,spring,Java,Spring,我使用自定义名称空间来简化一些框架组件部署 我们的配置看起来或多或少像: <rf:container attribute1="id"> <property name="processors" value="5" /> </rf:container> 具有多个自定义强制属性和一组可选属性。它被解析为bean定义。 现在应该对其进行扩展,以接受表示为bean的属性,该bean可以是共享的,也可以仅为该bean声明 定义为独立bean时,配置bean定义创

我使用自定义名称空间来简化一些框架组件部署

我们的配置看起来或多或少像:

<rf:container attribute1="id">
  <property name="processors" value="5" />
</rf:container>

具有多个自定义强制属性和一组可选属性。它被解析为bean定义。 现在应该对其进行扩展,以接受表示为bean的属性,该bean可以是共享的,也可以仅为该bean声明

定义为独立bean时,配置bean定义创建为:

<rf:config id="queue" size="100" bytes="1M"/>

然后可以将其设置为属性或直接嵌入标记中

但我想简化这一点,并提供如下快捷方式:

<rf:container attribute1="id">
  <property name="processors" value="5" />
  <rf:config size="100" bytes="1M"/>
</rf:container>

这将使配置在许多情况下对我来说更具表现力

目前,这两个标记都由BeanDefinitionParser实现解析。我尝试使用BeanDefinitionDecorator作为同一个名称,但似乎我不完全理解如何使用其中一个或两个名称

当内部的DefaultBeanDefinitionDocumentReader(即标记)以标准方式解析bean时,会应用decorator,但在使用自定义解析器时不会执行此代码。在我们的解析器实现中,通过在parse方法内手动调用parsePropertyElements()来解析普通属性,但是调用decorator解析更难,因为BeanDefinitionHolder当时还没有准备好

确保为自定义bean解析器解析装饰器的正确方法是什么


当前的解决方案显式地在内部搜索我们自己的标记并处理它们,但在我看来它确实是错误的。

您找到方法了吗?