美文网首页
Spring4+Hibernate5配置

Spring4+Hibernate5配置

作者: vaneL | 来源:发表于2017-07-31 20:38 被阅读0次

    spring4配置hibernate5:

    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">

    <bean id="transactionManager"
    class="org.springframework.orm.hibernate5.HibernateTransactionManager">

    <!-- 加载配置文件 -->
        <context:property-placeholder location="classpath:jdbc.properties"
            file-encoding="utf-8" ignore-unresolvable="true" />
    
        <bean id="sessionFactory"
            class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="packagesToScan">
                <list>
                    <!-- 可以加多个包 -->
                    <value>com.wechat.entity.po</value>
                </list>
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
                    <prop key="hibernate.dialect">${hibernate.dialect}</prop>
                    <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
                    <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
                    <prop key="hibernate.temp.use_jdbc_metadata_defaults">false</prop>
                </props>
            </property>
        </bean>
    <!-- 配置数据源 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
            destroy-method="close" p:driverClass="${jdbc.driverClassName}"
            p:jdbcUrl="${jdbc.url}" p:user="${jdbc.username}" p:password="${jdbc.password}"
            p:testConnectionOnCheckout="${jdbc.c3p0.testConnectionOnCheckout}"
            p:testConnectionOnCheckin="${jdbc.c3p0.testConnectionOnCheckin}"
            p:idleConnectionTestPeriod="${jdbc.c3p0.idleConnectionTestPeriod}"
            p:initialPoolSize="${jdbc.c3p0.initialPoolSize}" p:minPoolSize="${jdbc.c3p0.minPoolSize}"
            p:maxPoolSize="${jdbc.c3p0.maxPoolSize}" p:maxIdleTime="${jdbc.c3p0.maxIdleTime}" />
    
    
    <!-- 配置Hibernate事务管理器 -->
        <bean id="transactionManager"
            class="org.springframework.orm.hibernate5.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory" />
        </bean>
    
        <!-- 配置事务异常封装 -->
        <bean id="persistenceExceptionTranslationPostProcessor"
        class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
    
        <!-- 基于数据源的事务管理器 -->
        <!-- <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" 
            p:dataSource-ref="dataSource" /> -->
    
        <!-- 配合<tx:advice>和<aop:advisor>完成了事务切面的定义 -->
        <!-- 使用强大的切点表达式是语言轻松定义目标方法 -->
        <aop:config proxy-target-class="true">
            <!-- 通过aop定义事务增强切面 -->
            <aop:pointcut expression=" execution(* com.wechat.service..*(..))"
                id="serviceMethod" />
            <!-- 引用事务增强 -->
            <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" />
        </aop:config>
        <!-- 事务增强 -->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <!-- 事务属性定义 -->
            <tx:attributes>
                <tx:method name="*" />
            </tx:attributes>
        </tx:advice>
    

    jdbc.properties:

    #-----------------------------------------------------
    # 数据库配置
    #-----------------------------------------------------
    #服务器地址
    host=127.0.0.1
    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://${host}:3306/hibernate_test
    jdbc.username=root
    jdbc.password=root
    #-----------------------------------------------------
    # 适用于c3p0的配置
    # c3p0反空闲设置,防止8小时失效问题28800
    #-----------------------------------------------------
    #idleConnectionTestPeriod要小于MySQL的wait_timeout
    jdbc.c3p0.testConnectionOnCheckout=false
    jdbc.c3p0.testConnectionOnCheckin=true
    jdbc.c3p0.idleConnectionTestPeriod=3600
    #-----------------------------------------------------
    # c3p0连接池配置
    #-----------------------------------------------------
    #initialPoolSize, minPoolSize, maxPoolSize define the number of Connections that will be pooled.
    #Please ensure that minPoolSize <= maxPoolSize.
    #Unreasonable values of initialPoolSize will be ignored, and minPoolSize will be used instead.
    jdbc.c3p0.initialPoolSize=10
    jdbc.c3p0.minPoolSize=10
    jdbc.c3p0.maxPoolSize=100
    #maxIdleTime defines how many seconds a Connection should be permitted to go unused before being culled from the pool.
    jdbc.c3p0.maxIdleTime=3600
    #-----------------------------------------------------
    # hibernate连接池配置
    #-----------------------------------------------------
    hibernate.connection.driverClass=com.mysql.jdbc.Driver
    hibernate.connection.url=jdbc:mysql://${host}:3306/${dbName}
    hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
    hibernate.show_sql=true
    hibernate.format_sql=true
    hibernate.hbm2ddl.auto=update
    

    相关文章

      网友评论

          本文标题:Spring4+Hibernate5配置

          本文链接:https://www.haomeiwen.com/subject/ziarlxtx.html