如何在Spring XML上下文中实现条件资源导入?

7 浏览
0 Comments

如何在Spring XML上下文中实现条件资源导入?

我想要实现的是根据配置文件中定义的属性,动态地(即根据条件)启用/禁用导入子Spring XML上下文的能力。

我想象的实现方式如下:

其中,该属性会被解析为布尔值,当为true时,导入上下文;否则,不导入。

至今为止,我进行了一些研究:

  • 编写自定义的NamespaceHandler(及相关类),以便在自己的命名空间中注册自定义元素。例如:

    这种方法的问题在于,我不想复制Spring中的整个资源导入逻辑,并且我不确定应该委托哪些部分来完成此操作。

  • 重写DefaultBeanDefinitionDocumentReader,扩展“import”元素的解析和解释行为(该行为在importBeanDefinitionResource方法中完成)。但是我不确定在哪里可以注册此扩展。

0