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了

时间: 2024-10-07 18:48:31

spring4整合hibernate5以及出现的问题解决办法的相关文章

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

? 版权声明:本文为博主原创文章,转载请注明出处 1.问题描述: Spring4整合Hibernate5时,不再使用hibernate.cfg.xml,将其内容整合到Spring配置文件中,启动后不能自动创建表结构 2.解决方案: 设置hibernateProperties时,需要设置hibernate前缀 原本设置,不能自动创建表结构 <!-- 配置Hibernate相关属性 --> <bean id="sessionFactory" class="org

spring4整合hibernate5.1

在另一篇文章hibernate5(2)初入门配置实例中,我们针对hibernate5.1版本的崭新引导配置方法,完成了对数据库的的插入实例操作,在本节内容中,我们开始引入spring4,完成spring4与hibernate5.1的整合工作,像数据库中插入一条记录.在后面学习hibernate中,我们都会使用spring来管理我们的Bean容器. 1. 导入spring4所需jar包 我们推荐使用maven来管理项目,下面是maven中的spring整合hibernate完整配置. <prope

android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

        Leaning_wk每一次的进步都会拉近与成功的距离! 帐号设置退出   关闭 qq_15855289的博客 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8月书讯      每周荐书:Java Web.Python极客编程(评论送书) android使用友盟实现第三方登录.分享以及微信回调无反应问题解决办法 标签: android友盟第三方登录分享微信登录回调问题 2017-02-10 16:2

centos7 初次开机问题解决办法

centos7初次开机问题解决办法

带有ListView的界面无法通过手势左右滑动切换界面问题解决办法

问题描述: 在做OnGestureListener滑动切换窗口的时候,会遇到这样的问题.就是当界面中含有ListView的时候,OnGestureListener的左右触屏滑动就被ListView自己吃掉了. 问题分析: 在Android系统中,事件的分发和响应都按照一定的优先级仅仅有条的进行着.如果Activity中包含ListView那么系统的onTouchEvent事件会优先分发给ListView去处理,这时ListView的OnItemClickListener监听器会优先响应onTou

zabbix导入模版问题解决办法

当我们监控一些东西需要使用zabbix模版的时候,而模版没有怎么办?最简单的方法就是导入模版了 模版可以去https://www.zabbix.org/wiki/Zabbix_Templates/Official_Templates这里下载 而在导入的时候会报一些错误,下面给出导入vmware template报错的解决办法: 首先检查zabbix中是不是有模版对应的value map,没有的话导入的时候就报错啦. 手工创建value map: zabbix:在Administrator->ge

***微信 该连接无法访问问题解决办法

微信开发是提示: 该连接无法访问问题解决办法 解决: 1.第一个修改接口权限中的域名为你的业务服务器的域名 2.请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限. 主要涉及的是 网页授权获取用户基本信息 http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域名的说明

vmware虚拟机克隆CentOS7 出现的网络问题解决办法

http://www.bubuko.com/infodetail-1483490.html(转) vmware虚拟机克隆CentOS7 出现的网络问题解决办法 时间:2016-04-02 07:17:00                         阅读:578                         评论:0                         收藏:0                         [点我收藏+] 1.删除/etc/sysconfig/network

eclipse平台 android项目前显示红色叉号 android level-19 4.4平台导入项目 问题解决办法

android level-19  4.4平台导入项目 项目前显示红色叉号  问题解决办法 android level-19  4.4平台导入项目 项目前显示红色叉号,检查项目中文件,文件前没有叉号,分析是项目导入的问题,或者是lib库配置的问题. 1.用eclipse建立一个简单的android项目, HelloWorld: 2.选择HelloWorld项目,鼠标右键选择Build Path-Configure Build Path 对比发现,没有勾选 Android 4.4. 2.选择导入的