【问题标题】:XML Configuration parser with Spring使用 Spring 的 XML 配置解析器
【发布时间】:2012-01-27 10:27:59
【问题描述】:
我目前正在重构一个遗留应用程序以使用 Spring,但我目前有一个很大的症结:
我们有一个应用程序的 XML 配置文件,它不仅确定对象的配置方式,还确定应该使用哪些对象,即(如果 xmlNode.text = 'A' 则使用对象 A)。因此,我需要能够解析 XML 配置,以便知道将注入哪些 bean。
有人知道这样做的方法吗?
亲切的问候,
爱情
【问题讨论】:
标签:
java
xml
spring
configuration
inversion-of-control
【解决方案1】:
它是 XML - 使用 DOM 解析器并遍历树。
感觉就像你正在打败 Spring 的目的。您可以创建充当虚拟构造函数并执行相同操作的工厂。也许你应该重新考虑这个设计。
【解决方案2】:
我倾向于用 Spring 应用程序上下文文件完全替换旧的 XML 配置文件。保留旧配置听起来像是半生不熟的迁移,可能很快就会给您带来痛苦。
Spring 支持使用静态工厂方法创建 bean。也许您可以使用它来处理您提到的自定义对象创建。
【解决方案3】:
使用 SAXParser 还是 DOMParser? Google for JAXP(Java API for XML Processing),尤其是 DocumentBuilderFactory 和 SAXParserFactory。
你可以在这里找到一个非常有用的介绍:JAXP