Tôi đang sử dụng Spring 3.1.2 và Hibernate 4.1.7 cho ứng dụng web của mình. Tôi muốn bây giờ cấu hình cả hai. Tôi có hibernate.cfg.xml
tập tin của tôi:Tại sao phải định cấu hình cả dataSource và sessionFactory trong Cấu hình Spring-Hibernate?
<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>
My webapp-servlet.xml
mùa xuân tập tin cấu hình:
<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>
- Tại sao tôi cần phải cấu hình một bean DataSource khi tất cả các dữ liệu cần thiết đã được bao gồm trong cấu hình hibernate tập tin? Có Hibernate có một số mặc định nó có thể sử dụng?
- Một số khác là
DataSource
tôi có thể sử dụng? - Tôi có thiếu bất kỳ hạt đậu nào khác hoặc thông số cấu hình/thuộc tính để làm việc ở chế độ ngủ đông với ứng dụng của tôi không?
Tất cả các tùy chọn cấu hình từ 'hibernate.cfg của bạn.xml' có sẵn trên 'LocalSessionFactoryBean', thích thứ hai và bỏ qua chúng trong cấu hình Hibernate. –
Ok. Nhưng tôi vẫn chỉ muốn họ ở một nơi duy nhất, không lặp lại trong các tập tin khác nhau hoặc đậu. –
Đó là những gì tôi đang nói, loại bỏ cấu hình nguồn dữ liệu từ 'hibernate.cfg.xml' và để nó trong Spring XML. Sau đó, bạn có thể sử dụng cùng một bean 'dataSource', ví dụ: trong 'JdbcTemplate'. –