spring4整合hibernate5以及出现的问题解决办法

Posted 无影_剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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了

 

以上是关于spring4整合hibernate5以及出现的问题解决办法的主要内容,如果未能解决你的问题,请参考以下文章

Spring4整合Hibernate5时不能自动生成表结构

搭建SpringMVC+Spring4.3.2+Hibernate5.2.2框架

spring5整合hibernate5出现can not resolve java..data source

Spring第四天——SSH整合

SSH整合

SSH(struts2,spring4,hibernate5)详解