如何通过Spring中的JNDI名称获取DataSource连接?

How can I obtain the DataSource connection through the JNDI name in Spring?

我是 Spring 的新手,遇到以下问题。

我正在开发一个应用程序,运行 进入 JBoss 服务器,必须使用 JdbcTemplate.[=12= 在数据库上执行查询]

进入JBoss我已经设置了JNDI名称来标识数据库连接。

我尝试实现这个 JdbcTemplate 简单示例,我很清楚 JdbcTemplate 是如何工作的。在此示例中,为了创建与数据库的连接,它定义了一个 dataSource bean,然后将其注入到使用 JdbcTemplate 的 class 中, 这样:

   <!-- Initialization for data source -->
   <bean id="dataSource" 
      class="org.springframework.jdbc.datasource.DriverManagerDataSource">
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
      <property name="url" value="jdbc:mysql://localhost:3306/TEST"/>
      <property name="username" value="root"/>
      <property name="password" value="password"/>
   </bean>

   <!-- Definition for studentJDBCTemplate bean -->
   <bean id="studentJDBCTemplate" 
      class="com.tutorialspoint.StudentJDBCTemplate">
      <property name="dataSource"  ref="dataSource" />    
   </bean>

因此,如您所见,在此配置中,数据源配置明确写入 xml 配置文件。

如何通过定义的JNDI名称从JBoss获取它?

您可以使用以下 spring-servlet.xml:

<jee:jndi-lookup id="dataSource" jndi-name="<JNDI NAME>" />

在 beans 标签的 xsi:schemaLocation 属性中添加以下内容:

http://www.springframework.org/schema/jee    http://www.springframework.org/schema/jee/spring-jee-3.2.xsd