【问题标题】:Where to look for exact effects of Spring XML namespaces configuration?在哪里寻找 Spring XML 命名空间配置的确切效果?
【发布时间】:2014-08-02 17:45:02
【问题描述】:

众所周知,Spring Framework 在 XML 命名空间中有很多配置元素,例如:

  • <mvc:annotation-config/>
  • <tx:annotation-driven/>

其中一些做了大量的工作,例如:<http> Spring Security security 命名空间中的元素。

在哪里可以找到引入特定 XML 元素的所有效果的确切代码(比文档中所说的更多)?

例如 - 如果我想查看在 <security:http> 元素中使用 <security:csrf> 元素引起的确切 Spring 动作,我应该在哪里查看? (添加了哪些过滤器/拦截器/转换器,哪些范围属性可用等)

【问题讨论】:

  • 通常我会调试代码并单步调试 Spring 安全源代码。

标签: java xml spring spring-mvc spring-security


【解决方案1】:

几乎每个命名空间 (xsd) 在 Spring 的某个地方都有一个对应的 NamespaceHandler 类。元素也是如此,每个元素都有一个对应的BeanDefinitionParser

请参阅javadoc 以了解 Spring 本身的可用实现。 Spring Security 可以在here 找到。

现在大多数 Spring 项目通常在 org.springframework.[project].config 包中的某处包含一个命名空间。

【讨论】:

    【解决方案2】:

    简而言之,您必须:

    1. 创作 XML 架构文件
    2. 使用 NameSpaceHandler
    3. 使用 BeanDefinitionParser
    4. 在 META-INF 中注册处理程序和架构

    请参阅this document 了解详细信息

    查看这个 jar 以了解 Spring-security 命名空间的详细信息 spring-security-config-x.x.X.RELEASE-sources.jar

    【讨论】:

      猜你喜欢
      • 2019-02-01
      • 2013-10-27
      • 1970-01-01
      • 2018-04-28
      • 2019-08-30
      • 2011-02-10
      • 1970-01-01
      • 2011-01-20
      • 2012-09-25
      相关资源
      最近更新 更多