zoukankan      html  css  js  c++  java
  • spring4整合hibernate5以及出现的问题解决办法

     每一次的学习,都是一小步一小步的进行的,学习语言,重要的是能把hello world写出来

    以及在学习过程中出现的问题能够及时的记录并总结

    spring目前最新的版本是4.3,而hibernate是5.2

    最新版本的学习是要花费很大的勇气进行的

    首先是互联网上几乎没有什么资料可供参考

    其次,这两个框架在一些业务逻辑的处理方法上,和之前的版本有很大的不同

    首先是hibernate,构建sessionfactory不再是3.5以前版本的老办法了

    下面是我的获得sessionfactory方法

    public static SessionFactory getSessionFactory()
        {
            SessionFactory sessionFactory = null;
            final StandardServiceRegistry registry = new StandardServiceRegistryBuilder()
                    .configure().build();
            try
            {
                sessionFactory = new MetadataSources(registry).buildMetadata()
                        .buildSessionFactory();
            } catch (Exception e)
            {
                StandardServiceRegistryBuilder.destroy(registry);
            }
            return sessionFactory;
        }

    spring是一个集大成者,可以很好的管理hibernate

    再者。spring aop功能太强大了,利用切面编程可以方便的进行事务管理

    spring中可以直接对hibernate进行配置,所以以前的hibernate.cfg.xml可以直接舍弃掉了

    我们可以在spring配置文件中进行sessionFactory配置,dataSource配置以及事务配置

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

    此处注意在hibernate5里面,我们的sessionFactory由spring提供的org.springframework.orm.hibernate5.LocalSessionFactoryBean类进行实例化

    dataSource进行数据源的定义

    我们可以用c3p0进行数据缓冲池

    添加事务支持

    <!-- 配置Hibernate事务管理器 -->
        <bean id="transactionManager"
            class="org.springframework.orm.hibernate5.HibernateTransactionManager">
            <property name="sessionFactory" ref="sessionFactory" />
        </bean>
    
    
        <aop:config proxy-target-class="true">
            
            <aop:pointcut expression=" execution(* top.scorpion.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>

    这样我们就可以利用spring管理hibernate了

  • 相关阅读:
    php省市联动实现
    json学习笔记
    ajax无刷新技术
    session和cookie
    缩略图,透明度,水印,图片合并
    PHP画矩形,椭圆,圆,画椭圆弧 ,饼状图
    PHP字母数字验证码和中文验证码
    PHP画图的基本步骤GD库
    文件上传和多文件上传
    js身份证验证
  • 原文地址:https://www.cnblogs.com/withscorpion/p/5634399.html
Copyright © 2011-2022 走看看