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

时间:2016-02-16 11:31:02

标签: spring spring-mvc spring-data spring-jdbc jdbctemplate

我在Spring很新,我有以下问题。

我正在开发一个运行到JBoss服务器的应用程序,它必须使用 JdbcTemplate 在数据库上执行查询。

进入JBoss我已经设置了识别数据库连接的 JNDI名称

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

   <!-- 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获取它?

1 个答案:

答案 0 :(得分:2)

您可以使用以下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