我在Spring中很新,我有点怀疑将命名空间的概念与我的XML配置文件联系起来。
因此,例如,在我正在处理的项目的根上下文.xml文件中,有以下定义:
<jee:jndi-lookup jndi-name="java:jboss/datasources/myDbDS" id="datasource" expected-type="javax.sql.DataSource" />
具有 jee 名称的步伐,也通过以下方式指定到豆类外部容器中:
xmlns:jee="http://www.springframework.org/schema/jee"
现在我的疑问是,id="数据源"的定义到底是什么?这个:
<jee:jndi-lookup jndi-name="java:jboss/datasources/myDbDS" id="datasource" expected-type="javax.sql.DataSource" />
它是具有特定命名空间的 Spring 经典 bean ,因为它属于 bean 的特定域(具有特定的浇注(还是什么?
如春季文档中所述:
jee 标签处理与 Java EE(Java Enterprise Edition(相关的 配置问题,例如查找 JNDI 对象和定义 EJB 引用
下面是来自 spring 文档的示例:
不使用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>
Using 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>
更多细节在这里