我有时会在 Spring 中使用自定义命名空间。就像 CXF 或 ActiveMQ 一样。
这是我如何声明我的嵌入式 ActiveMQ 代理服务器的示例:
<amq:broker useJmx="false" persistent="true">
<amq:transportConnectors>
<amq:transportConnector uri="${mobilepush.activemq.broker.transport.connector.uri}" />
</amq:transportConnectors>
<amq:persistenceAdapter>
<amq:kahaPersistenceAdapter directory="${mobilepush.activemq.broker.queue.persistence.directory}" maxDataFileLength="33554432"/>
</amq:persistenceAdapter>
</amq:broker>
我对 Spring 的自定义命名空间了解不多,但在我看来,这些命名空间只是为更详细的 Spring bean 声明提供了一个“快捷方式”。
一些像 Xebia Management Extras 这样的库在他们的文档中提供了自定义命名空间和原始 spring 实现之间的等价性:
<management:jms-connection-factory-wrapper
id="connectionFactory"
connection-factory="rawConnectionFactory" />
等于:
<bean id="connectionFactory" class="fr.xebia.management.jms.SpringManagedConnectionFactory">
<property name="connectionFactory" ref="rawConnectionFactory" />
</bean>
http://code.google.com/p/xebia-france/wiki/ManagedJmsConnectionFactory
但有时自定义命名空间文档不够精确,我想了解 Java 类的幕后情况......
所以我想知道的是如何获得自定义命名空间使用的原始 Spring bean 声明等效性?
任何 IDE 中是否包含任何“自动翻译工具”?
据我所知,似乎有不同的工具可以创建自定义的 Spring 命名空间,比如 XBean... 是否有一种自动或手动的方式来了解命名空间是如何在不了解所有这些工具的情况下工作的?
谢谢