我是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)或者是什么?
答案 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