8

我需要以下所有 xmlns 和 xsi:schemaLocation 在下面的 spring 上下文文件中吗?

    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jee="http://www.springframework.org/schema/jee"
    xmlns:oxm="http://www.springframework.org/schema/oxm"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
            http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.1.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">

    <context:annotation-config />

    <bean class="org.springframework.web.portlet.mvc.annotation.DefaultAnnotationHandlerMapping" />

    <bean id = "controller" class="simpleController"/>


</beans>

因为我只是定义一个 bean 类只是使用

xmlns="http://www.springframework.org/schema/beans" and its corresponding schema location enough ? 

我不需要其他定义?如果不是,我什么时候需要使用这些定义?

4

3 回答 3

10
  • 您需要主bean命名空间,因为您使用 XML 来定义您的 bean 定义。
  • 您需要context命名空间,因为您使用它来定义<context:annotation-config />
  • 除非您通过依赖项oxm执行 xml编组/解组操作,否则您不需要命名空间。spring-oxm
  • p除非您计划在 bean 定义中内联 setter 注入,否则您不需要命名空间。
  • 除非您通过依赖项tx引入事务管理,否则您不需要命名空间。spring-tx
  • 除非您通过依赖项aop执行任何AOP 操作,否则您不需要命名空间。spring-aop
  • jee除非您计划执行任何 Java EE 操作,例如 jndi-lookup,否则您不需要命名空间
于 2013-06-10T11:04:54.343 回答
6

您只需要两个命名空间。

  • 默认一个:beans
  • 上下文命名空间

可以在应用程序上下文 XML 中删除任何其他命名空间。

此外,我建议您指向默认 XSD,而不是指向特定于版本的 XSD。

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context.xsd">
于 2013-06-10T10:49:57.437 回答
1
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:util="http://www.springframework.org/schema/util"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context.xsd">

</beans>
于 2016-08-26T06:45:51.267 回答