hibernate.spring.xml

<!-- 配置数据库连接池(c3p0) -->
<!-- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
基本信息
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>

其他配置
连接池中保留的最小连接数。
<property name="minPoolSize" value="10" />
连接池中保留的最大连接数。Default: 15
<property name="maxPoolSize" value="100" />
<property name="initialPoolSize" value="10" />
最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0
<property name="maxIdleTime" value="1800" />
当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3
<property name="acquireIncrement" value="3" />
JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0
<property name="maxStatements" value="1000" />

每60秒检查所有连接池中的空闲连接。Default: 0
<property name="idleConnectionTestPeriod" value="60" />

定义在从数据库获取新连接失败后重复尝试的次数。Default: 30
<property name="acquireRetryAttempts" value="30" />
两次连接中间隔时间,单位毫秒。Default: 1000
<property name="acquireRetryDelay" value="1000" />
true表示pool向数据库请求连接失败后标记整个pool为block并close,
就算后端数据库恢复正常也不进行重连,客户端对pool的请求都拒绝掉。
false表示不会标记 pool为block,新的请求都会尝试去数据库请求connection。
默认为false。因此,如果想让数据库和网络故障恢复之后,
pool能继续请求正常资源必须把此项配置设为false
<property name="breakAfterAcquireFailure" value="false" />
因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
等方法来提升连接测试的性能。Default: false
<property name="testConnectionOnCheckout" value="false" />
</bean> -->

datasource:

<bean id="dataSource" class="org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy">
        <property name="targetDataSource">
            <bean id="mainDataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close">
                <property name="driverClass" value="${jdbc.driver}" />
                <property name="jdbcUrl" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
               <!--  检查数据库连接池中空闲连接的间隔时间(分) 默认:240 -->
                <property name="idleConnectionTestPeriodInMinutes" value="1"/>
                <!-- 连接池中未使用的链接最大存活时间(分) 默认:240 -->
                <property name="idleMaxAgeInMinutes" value="4"/>
                <!-- 每个分区最大的连接数 -->
                <property name="maxConnectionsPerPartition" value="20"/>
                <!-- 每个分区最小的连接数 -->
                <property name="minConnectionsPerPartition" value="2"/>
                <!-- 分区数 默认值:2,最小值:1 -->
                <property name="partitionCount" value="3"/>
               <!--  连接数不够时,每次创建的新链接个数 默认值:2 -->
                <property name="acquireIncrement" value="2"/> 
                <!-- Statement实例缓存个数 默认值:0 -->
                <property name="statementsCacheSize" value="50"/>
                <!-- 每个分区释放链接助理进程的数量 默认值:3 -->
                <property name="releaseHelperThreads" value="3"/>
               </bean>
        </property>
    </bean>
datasource

sessionFactory:

<!-- 配置SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
        <property name="entityCacheStrategies">
            <props>
                <prop key="com.astasys.dms.coeus.audit.LogEntry">read-only</prop>
                <prop key="com.astasys.dms.coeus.domainobjects.HierarchicalNode">read-write</prop>
                <prop key="com.astasys.dms.coeus.roles.RoleExecutor">read-write</prop>
            </props>
        </property>
        <property name="collectionCacheStrategies">
            <props>
                <prop key="com.astasys.dms.coeus.domainobjects.HierarchicalNode.descriptions">read-write</prop>
                <prop key="com.astasys.dms.coeus.domainobjects.propertyprofile.PropertyProfileTemplate.propertyDescriptors">read-write</prop>
            </props>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">${jdbc.dialect}</prop>
                <prop key="identityGenerationDisableString"></prop>
                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.jdbc.batch_size">20</prop>
                <prop key="hibernate.max_fetch_depth">3</prop>
                <prop key="hibernate.bytecode.use_reflection_optimizer">true</prop>
                <prop key="hibernate.cache.use_query_cache">true</prop>
                <prop key="hibernate.cache.use_second_level_cache">true</prop>
                <prop key="net.sf.ehcache.configurationResourceName">/ehcache.xml</prop>
                <prop key="hibernate.query.substitutions">true '1', false '0'</prop>
                <prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop>
                <prop key="hibernate.connection.isolation">1</prop>
            </props>
        </property>
        <property name="mappingResources">
            <list>
                <value>TypeTable.hbm.xml</value>
                <value>RolePlayer.hbm.xml</value>
                <value>Message.hbm.xml</value>
                <value>Email.hbm.xml</value>
                <value>PropertyProfile.hbm.xml</value>
                <value>AuditTrail.hbm.xml</value>
                <value>OCRNightJob.hbm.xml</value>
                <value>OCRLogging.hbm.xml</value>
                <value>Announcement.hbm.xml</value>
                <value>RelatedSearch.hbm.xml</value>
                <value>NotificationGroup.hbm.xml</value>
                <value>DocumentWorkflow.hbm.xml</value>
                <value>Forum.hbm.xml</value>
                <value>Lifecycle.hbm.xml</value>
                <value>MailboxImport.hbm.xml</value>
                <value>LicenseUsageMonthlyReport.hbm.xml</value>
            </list>
        </property>
        <property name="entityInterceptor">
            <bean class="com.astasys.dms.coeus.interceptors.NodeInterceptor" />
        </property>
    </bean>
sessionFactory

transaction:

<!-- 配置声明式的事务管理(采用基于注解的方式) -->
<bean id="defaultHibernateTx" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- <tx:annotation-driven transaction-manager="transactionManager" /> -->

<tx:advice transaction-manager="defaultHibernateTx" id="txAdvice">
        <tx:attributes>
            <tx:method name="find*" read-only="false"/>
            <tx:method name="add*" rollback-for="Exception"/>
        </tx:attributes>
    </tx:advice>
    
    <aop:config>
        <aop:pointcut expression="execution(* com.astasys.transaction.service.*.*(..))" id="txpointcut"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txpointcut"/>
    </aop:config>
transaction aop
原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/4837718.html