在 Spring 配置中包含自定义 XML

主要观点:Spring 2.x 时代的一个优点是支持自定义 XML,Spring 自身通过此方式添加了各种新标签,如<util:list><mvc:annotation-driven>。文中通过一个示例应用展示了如何使用自定义 XML 构建动态 Swing 菜单,同时介绍了 Spring 自定义 XML 的工作原理及相关文件。

关键信息

  • Spring 需通过META-INF/spring.schemas验证和解析 XML,META-INF/spring.handlers查找处理程序。
  • 示例应用包含spring.schemasspring.handlersMenuNamespaceHandlerMenuDefinitionParser等部分。
  • 自定义 XML 允许<menu>元素任意嵌套,命名空间处理程序为MenuNamespaceHandler,解析器MenuDefinitionParser处理 XML 元素并创建 Spring bean 定义。
  • 可在 Spring 配置文件中自由混合使用自定义 XML 和标准 Spring XML,还能引用普通 Spring bean。

重要细节

  • spring.schemas匹配类路径上的文件,spring.handlers指向处理类。
  • 解析器中处理嵌套元素需递归,创建 Spring bean 定义时不直接创建MenuItem对象,而是使用rootBeanDefinition()
  • 引用单个 Spring bean 使用addPropertyReference(),管理 Spring bean 定义列表使用addPropertyValue()
  • 示例中通过ClassPathXmlApplicationContext加载解析后的 XML 到 Spring 应用上下文中,可获取相应的 bean。
阅读 5
0 条评论