2012-12-19 57 views
2

下面是我当前的Spring项目的database.xml文件。有人可以告诉我什么将不得不改变,所以我可以在其中使用JBoss JNDI数据源..我想这样做,所以我不需要配置文件的数据库用户和密码和URL在它。Spring项目我如何访问JBoss JNDI数据源

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
     xmlns:jdbc="http://www.springframework.org/schema/jdbc" 

    xsi:schemaLocation="http://www.springframework.org/schema/beans 
          http://www.springframework.org/schema/beans/spring-beans.xsd 
          http://www.springframework.org/schema/context 
          http://www.springframework.org/schema/context/spring-context-3.1.xsd 
          http://www.springframework.org/schema/tx 
          http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
          http://www.springframework.org/schema/jdbc 
          http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd"> 

          <!-- 

    Last changed: $LastChangedDate: 2012-11-19 08:53:13 -0500 (Mon, 19 Nov 2012) $ 
    @author $Author: [email protected] $ 
    @version $Revision: 829 $ 

    --> 

    <context:property-placeholder location="classpath:app.properties" /> 

    <context:component-scan base-package="org.uftwf" /> 

    <tx:annotation-driven transaction-manager="hibernateTransactionManager" /> 



    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
     destroy-method="close"> 

     <!-- these are C3P0 properties  --> 
     <property name="acquireIncrement" value="${database.c3p0.acquireIncrement}" /> 
     <property name="minPoolSize" value="${database.c3p0.minPoolSize}" /> 
     <property name="maxPoolSize" value="${database.c3p0.maxPoolSize}" /> 
     <property name="maxIdleTime" value="${database.c3p0.maxIdleTime}" /> 
     <property name="maxIdleTimeExcessConnections" value="${database.c3p0.maxIdleTimeExcessConnections}" /> 
     <property name="numHelperThreads" value="${database.c3p0.numHelperThreads}" /> 
     <property name="unreturnedConnectionTimeout" value="${database.c3p0.unreturnedConnectionTimeout}" /> 
     <property name="idleConnectionTestPeriod" value="300" /> 

     <property name="driverClass" value="${database.driver}" /> 
     <property name="jdbcUrl" value="${database.url}" /> 
     <property name="user" value="${database.user}" /> 
     <property name="password" value="${database.password}" /> 
    </bean> 

    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>org.uftwf.enrollment.model.Contact</value> 
       <value>org.uftwf.enrollment.model.Enrollment</value> 
       <value>org.uftwf.enrollment.model.Member</value> 
       <value>org.uftwf.enrollment.model.Profile</value> 
       <value>org.uftwf.enrollment.model.School</value> 

      </list> 
     </property> 

     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
       <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
       <prop key="hibernate.use_sql_comments">${hibernate.use_sql_comments}</prop> 
       <prop key="format_sql">${format_sql}</prop> 
      </props> 
     </property> 
    </bean> 

    <bean id="hibernateTransactionManager" 
     class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 
</beans> 
+0

你需要一个JNDI数据源,而不是你已经配置了一个。 – duffymo

回答

5

我认为你可以在JBoss中配置DataSource。请注意,您必须在应用程序服务器配置中定义其JNDI名称。

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

或快捷方式:一旦你的名字,只需更换您的dataSource

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/some-name" expected-type="javax.sql.DataSource" /> 
相关问题