关于Spring命名空间到XML配置文件的一些疑问。究竟如何运作?

时间:2016-02-16 16:16:04

标签: java spring spring-mvc xml-namespaces

我是Spring的新手,我有点怀疑将命名空间的概念与我的XML配置文件相关联。

例如,在我正在处理的项目的 root-context.xml 文件中有这样的定义:

<jee:jndi-lookup jndi-name="java:jboss/datasources/myDbDS" id="datasource" expected-type="javax.sql.DataSource" />

具有 jee 名称空间,该名称空间也通过以下方式指定到 beans 外部容器中:

xmlns:jee="http://www.springframework.org/schema/jee"

现在我的疑问是,这个定义到底有什么id =“datasource”?这一个:

<jee:jndi-lookup jndi-name="java:jboss/datasources/myDbDS" id="datasource" expected-type="javax.sql.DataSource" />

它是具有特定命名空间的Spring的经典bean,因为它属于bean的特定域(具有特定的pourpose)或者是什么?

1 个答案:

答案 0 :(得分:1)

正如春季文档中所解释的那样:

  

jee标签与Java EE(Java Enterprise Edition)相关   配置问题,例如查找JNDI对象和定义   EJB引用

以下是来自spring doc的一个例子:

不使用jee jndi-lookup

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="jdbc/MyDataSource"/>
</bean>

<bean id="userDao" class="com.foo.JdbcUserDao">
    <!-- Spring will do the cast automatically (as usual) -->
    <property name="dataSource" ref="dataSource"/>
</bean>

使用jee jndi-lookup

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/MyDataSource"/>

<bean id="userDao" class="com.foo.JdbcUserDao">
    <!-- Spring will do the cast automatically (as usual) -->
    <property name="dataSource" ref="dataSource"/>
</bean>

更多详情here