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类上或者方法上使用注解

  • 相关阅读:
    Windows中一个22年的漏洞
    关于口令强度等级的设计
    360招聘网络安全攻防技术研究员
    法国出售给阿联酋的卫星可能含有后门组件
    2013年极客范最受欢迎的10篇博文
    利用WPS 2012/2013 0day针对中国政府部门的定向攻击
    Kingsoft Office Writer 2012 8.1.0.3385
    破解Google Gmail的https新思路
    设计自己的密码规则,实现强壮的自我保护
    电信级的RSA加密后的密码的破解方法
  • 原文地址:https://www.cnblogs.com/songcuiting/p/8989266.html
Copyright © 2011-2022 走看看