복붙노트

[SPRING] Spring을 사용하여 Hibernate에서 내장 c3p0 풀링을 설정하기

SPRING

Spring을 사용하여 Hibernate에서 내장 c3p0 풀링을 설정하기

hibernate에서 c3p0 pooling을 설정하는 법을 배웠고, 다음과 같이 hibernate.cfg.xml에 설정을 쓸 수있다.

<property name="hibernate.c3p0.min_size">2</property>
    <property name="hibernate.c3p0.max_size">5</property>
    <property name="hibernate.c3p0.timeout">600</property>
    <property name="hibernate.c3p0.max_statements">0</property>
    <property name="hibernate.c3p0.idle_test_period">300</property>
    <property name="hibernate.c3p0.acquire_increment">1</property>

그러나 Spring을 사용하여 Hibernate를 구성했습니다. 아래에서 시도 할 때 작동하지 않습니다.

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/news_loader" />
    <property name="username" value="blah" />
    <property name="password" value="blah" /> 

    <property name="hibernate.c3p0.min_size" value="2" />
    <property name="hibernate.c3p0.max_size" value="5" />
    <property name="hibernate.c3p0.timeout" value="600" />
    <property name="hibernate.c3p0.max_statements" value="0" />
    <property name="hibernate.c3p0.idle_test_period" value="300"/>
    <property name="hibernate.c3p0.acquire_increment" value="1" />
</bean>

Spring을 사용하여 구성 할 수있는 독립 실행 형 c3p0 풀링에 대해 읽었지만 Spring을 사용하여 최대 절전 모드에서 내장 c3p0 풀링을 구성 할 수있는 방법이 있습니까?

나에게 초보자라고 가르쳐주세요.

해결법

  1. ==============================

    1.다음은 데이터 소스에서 c3p0을 구성하는 방법에 대한 샘플 구성입니다 (응용 프로그램의 경우).

    다음은 데이터 소스에서 c3p0을 구성하는 방법에 대한 샘플 구성입니다 (응용 프로그램의 경우).

    <bean id="dataSourceGlobal" class="com.mchange.v2.c3p0.ComboPooledDataSource"
              destroy-method="close">
            <property name="driverClass" value="${driver}" />
            <property name="jdbcUrl" value="${server}" />
            <property name="user" value="${user}" />
            <property name="password" value="${passw}" /> 
    
            <!-- these are C3P0 properties -->
            <property name="acquireIncrement" value="${acquireIncrement}" />
            <property name="minPoolSize" value="${minPoolSize}" />
            <property name="maxPoolSize" value="${maxPoolSize}" />
            <property name="maxIdleTime" value="${maxIdleTime}" />
    </bean>
    

    우리는 외부 속성 파일을 사용하여 일부 매개 변수를 구성하지만 Spring에서도 직접 구성 할 수 있습니다.

    최대 절전 모드에서 풀링을 처리하려면 세션 등록 정보를 구성해야합니다.

    <bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
        <!--suppress InjectionValueTypeInspection -->
        <property name="mappingResources" ref="hibernateMappingList" />
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">net.sf.hibernate.dialect.Oracle9Dialect</prop>
                <prop key="transaction.factory_class">
                    net.sf.hibernate.transaction.JDBCTransactionFactory
                </prop>
                <prop key="hibernate.transaction.factory_class">
                    net.sf.hibernate.transaction.JDBCTransactionFactory
                </prop>
                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.cglib.use_reflection_optimizer">false</prop>
                <prop key="hibernate.jdbc.batch_size">0</prop>
    
                <prop name="hibernate.c3p0.min_size" value="2" />
                <prop name="hibernate.c3p0.max_size" value="5" />
                <prop name="hibernate.c3p0.timeout" value="600" />
                <prop name="hibernate.c3p0.max_statements" value="0" />
                <prop name="hibernate.c3p0.idle_test_period" value="300"/>
                <prop name="hibernate.c3p0.acquire_increment" value="1" />
          </props>
        </property>
    </bean>
    

    접근 방식 중 하나를 사용해야합니다 : 데이터 소스에서 풀링하거나 최대 절전 모드 세션에서 풀링하십시오. 리소스를 낭비하므로 두 가지를 절대로 사용하지 마십시오.

  2. ==============================

    2.스프링 구성에서는 cp30 대신 dbcp를 사용합니다. Spring은 데이터 소스 / 커넥션 풀의 인스턴스를 생성하고있다. dbcp 집합에 대한 simillar 매개 변수를 구성하려면 속성이 직접 설정되어 있어야합니다.

    스프링 구성에서는 cp30 대신 dbcp를 사용합니다. Spring은 데이터 소스 / 커넥션 풀의 인스턴스를 생성하고있다. dbcp 집합에 대한 simillar 매개 변수를 구성하려면 속성이 직접 설정되어 있어야합니다.

    <property name="maxActive" value="5"/>
    <property name="minIdle" value="2"/>
    

    BasicDataSource의 javaodoc 또는 http://commons.apache.org/dbcp/configuration.html 구성 페이지에서 사용 가능한 등록 정보를 찾을 수 있습니다.

  3. from https://stackoverflow.com/questions/5553890/configuring-the-built-in-c3p0-pooling-in-hibernate-using-spring by cc-by-sa and MIT license