zoukankan      html  css  js  c++  java
  • Spring和hibernate框架整合

    整合关键点:

    1、数据源dataSource交给Spring

      <!--加载属性文件-->    
        <context:property-placeholder location="classpath:db.properties"/>
        <!-- 数据源的配置 -->
        <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
            <property name="driverClass" value="${jdbc.driverClass}"></property>
            <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
            <property name="user" value="${jdbc.user}"></property>
            <property name="password" value="${jdbc.password}"></property>
        </bean>

    2、sesionFactory的对象交给spring

    <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean" >
            <property name="dataSource" ref="dataSource"></property>
            <property name="configLocations" value="classpath:applicationContext.xml"></property>
    </bean>

    3、事务管理

      (1)配置platFormTransationManager接口(底层接口)

        platFormTransationManager的两个实现类:

        jdbc的技术:DataSourceTransationManager(这个需要配置dataSource)

        hibernate技术:HibernateTransationManager(这个需要配置sessionFactory)(这次用这个)

            这两种事务管理器后面详细讲解 

      (2)配置事务管理器

        <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory"></property>
        </bean>

      (3)管理事务

      方法一:xml的方式管理事务

        1、配置通知

    <!-- 具体增强逻辑 -->
    <tx:advice id="txAdvice"> <tx:attributes>
           <!-- 匹配业务类中的方法名称 --> <tx:method name="save*"/> <tx:method name="update*"/> <tx:method name="delete*"/> <tx:method name="find*" read-only="true"/> <tx:method name="*" /> </tx:attributes> </tx:advice>

       2、配置aop切面

    <aop:config>
            <!-- 配置切点   配置具体哪些方法需要增强-->
            <aop:pointcut expression="execution(* cn.itcast.service.*.*(..))" id="cut"/>
            <!-- 配置切面:将增强的逻辑作用到 切点   (通知+切入点) -->
            <aop:advisor advice-ref="txAdvice" pointcut-ref="cut"/>
        </aop:config>

      方法二:注解方式管理事务

      1、同上配置事务管理器

      2、开始注解驱动(扫描)

    <tx:annotation-driven  transaction-manager="transactionManager"/>

      3、在service类上或者方法上使用注解

  • 相关阅读:
    解决UITableView中Cell重用机制导致内容出错的方法总结
    Hdu 1052 Tian Ji -- The Horse Racing
    Hdu 1009 FatMouse' Trade
    hdu 2037 今年暑假不AC
    hdu 1559 最大子矩阵
    hdu 1004 Let the Balloon Rise
    Hdu 1214 圆桌会议
    Hdu 1081 To The Max
    Hdu 2845 Beans
    Hdu 2955 Robberies 0/1背包
  • 原文地址:https://www.cnblogs.com/songcuiting/p/8989266.html
Copyright © 2011-2022 走看看