Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie konfiguriere ich Hibernate, Spring und Apache dbcp für das Connection Pooling?

Mach es nicht so. Konfigurieren Sie die Datenquelle, die Sie in Spring sowie in Hibernate verwenden möchten. Verwerfen Sie die hibernate.dbcp und hibernate.connection Eigenschaften.

<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>

Fügen Sie einfach die dataSource hinzu -Eigenschaft zu Ihrer AnnotationSessionFactoryBean als Abhängigkeit und fertig. Beachten Sie, dass Sie die configurationClass nicht benötigen -Eigenschaft, da sie bereits annotationsbasiert ist.

Ein Tipp, den ich empfehlen würde, Commons-DBCP nicht mehr als Datenquelle zu verwenden, sondern einen Blick auf HikariCP als bessere Datenquellenimplementierung.

Für weitere Informationen zur Integration/Konfiguration von Hibernate mit Spring empfehle ich dieser Abschnitt des Referenzhandbuchs.