Gör det inte så. Konfigurera datakällan du vill använda under Spring såväl som Hibernate. Ta bort hibernate.dbcp
och hibernate.connection
egenskaper.
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/app"/>
<property name="username" value="foo"/>
<property name="password" value="bar"/>
// Other DBCP properties here
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"
<property name="packagesToScan">
<list>
<value>com.my.app.model</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
Lägg bara till dataSource
egenskap till din AnnotationSessionFactoryBean
som beroende och gjort. Observera att du inte behöver configurationClass
egenskapen eftersom den redan är annoteringsbaserad.
Ett tips som jag inte skulle föreslå att använda Commons-DBCP längre som en datakälla istället ta en titt på HikariCP som en bättre implementering av datakällor.
För mer information om att integrera/konfigurera Hibernate med Spring föreslår jag det här avsnittet i referensguiden.