什么xmlns& schemaLocation在Spring上下文文件中使用?

时间:2013-06-10 10:45:58

标签: java spring

我是否需要以下所有xmlns& xsi:下面的spring上下文文件中的schemaLocation?

    <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 ? 

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

3 个答案:

答案 0 :(得分:10)

  • 您需要主bean命名空间,因为您使用XML来定义bean定义。
  • 您需要context命名空间,因为您使用它来定义<context:annotation-config />
  • 除非您通过oxm依赖项执行xml marshalling/unmarshalling operations,否则不需要spring-oxm命名空间。
  • 除非您计划inline setter injection in your bean definitions
  • ,否则您不需要p命名空间
  • 除非您通过tx依赖项介绍transactional management,否则不需要spring-tx命名空间。
  • 除非您通过aop依赖项执行任何AOP operations,否则不需要spring-aop命名空间。
  • 您不需要jee命名空间,除非您计划执行任何Java EE操作,例如jndi-lookup

答案 1 :(得分:6)

您只需要两个名称空间。

  • 默认值: bean
  • 上下文命名空间

可以在应用程序上下文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">

答案 2 :(得分:1)

composer