Ich verwende Spring 3.1.2 und Hibernate 4.1.7 für meine Webanwendung. Ich möchte jetzt beide konfigurieren. Ich habe meine hibernate.cfg.xml
Datei:Warum konfigurieren Sie sowohl dataSource als auch sessionFactory in der Spring-Hibernate-Konfiguration?
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.pool_size">10</property>
<property name="hibernate.connection.autocommit">false</property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!--
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
-->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>
Meine webapp-servlet.xml
Frühjahr Konfigurationsdatei:
<beans>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="configLocation">
<value>
classpath:hibernate.cfg.xml
</value>
</property>
<property name = "dataSource" ref = "dataSource"></property>
</bean>
<bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource">
<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 = "root" />
<property name = "maxActive" value = "10" />
</bean>
</beans>
- Warum ich eine Datasource-Bean tun müssen, bei Bedarf alle Daten konfigurieren, bereits in der Hibernate-Konfiguration enthalten ist Datei? Verfügt Hibernate über einen Standard, den es verwenden kann?
- Was sind andere
DataSource
s kann ich verwenden? - Fehle ich irgendwelche anderen Beans oder Konfigurationsparameter/Eigenschaften, um Hibernate mit meiner Anwendung arbeiten zu lassen?
Alle Konfigurationsoptionen von Ihrem 'hibernate.cfg in Konflikt stehen könnten.xml' sind in 'LocalSessionFactoryBean' verfügbar, bevorzugen letztere und überspringen sie in der Hibernate-Konfiguration. –
Ok. Aber ich will sie nur an einem einzigen Ort, nicht in verschiedenen Dateien oder Bohnen. –
Das ist, was ich sage, entfernen Sie Datenquelle Konfiguration von 'hibernate.cfg.xml' und lassen Sie es in Spring XML. Sie können später dieselbe 'dataSource'-Bean verwenden, z. in 'JdbcTemplate'. –