Hibernate中相关接口实现类的生命周期

问题描述

今天面试被问到:Hibernate中SessionFactory和Session以及Transaction的生命周期,哪位高手能帮忙解答下··谢谢了· 问题补充:aabcc 写道

解决方案

我一般不使用spring来声明事务但是很明显的,当你声明某些方法的事务模式后,SPRING会在你执行的方法环绕着 begin和commit 还有 rollback举个例,如果你 Service方法里面的session是交给spring管理的,那spring会在你service方法开始执行时 openSession,结束时close如果session池化的话就是 还给池 等待调用。知道原理了,只要弄清楚SPRING怎么帮你管理了,结论就出来了。
解决方案二:
如果不考虑jvm回收的情况transaction 在 session beginTransaction()时 创建,session close()时 销毁session 在 sessionFactory(sessionFactoryImpl) openSession()时 创建session.close()时 销毁sessionFactory就是 buildSessionFactory时创建,close()时 销毁跟servlet生命周期的回答应该不一样,servlet交给容器管理,所以有响应请求后的一系列生命周期描述SessionFactory Session 和 Transcation,除非你交给spring去管理,一般情况下自己写的 HibernateUtil和 自己写的 DAO就是自己控制周期。我是这么理解的,希望有人能补充一下。如果你的考官是问你在spring管理下 这三个东西的生命周期,那回答可能会不一样。

时间: 2024-08-03 13:09:46

Hibernate中相关接口实现类的生命周期的相关文章

Android编程中的四大基本组件与生命周期详解_Android

本文实例讲述了Android编程中的四大基本组件与生命周期.分享给大家供大家参考,具体如下: Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity : 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最

类的生命周期回顾篇

一.JAVA虚拟机和JAVA程序的生命周期 JAVA虚拟机的生命周期和JAVA程序的生命周期一致,当我们在命令行中敲入java命令运行java程序时,java虚拟机进程启动,程序运行,当程序终止时,则JAVA虚拟机的生命也结束. 二.类的生命周期 1.加载:将.class文件的二进制数据放到内存方法区中,并在堆区中创建一个Class对象,这个Class对象封装了方法区的数据结构,用户能通过Class对象访问到方法区中. 2.连接 (1)验证:验证.class文件是否是通过JAVA程序编译出来的,

Android Service类与生命周期详细介绍

Android  Service类与生命周期 Service是Android四大组件与Activity最相似的组件,都代表可执行的程序,区别在于Service一直在后台运行且没有用户界面. 1.Service的类图和生命周期 先来看看Service的类图: 接下来看看Service的生命周期: 2.开发Service (1)开发Service需要两步: 第1步:定义子类,继承Service 第2步:在AndroidManifest.xml文件中配置Service (2)创建Service pub

Eclipse中查找接口实现类快捷键

  就是点击某个接口某个方法名字的时候,直接跳到它的某个实现类里面,一般我们习惯对着那个接口的方法按F3,但是这会直接跳到接口类的源码中,那么呵呵,我们换一个ctrl+T 然后自己选择一下实现类就进去了.   比如下面的kanbanDao的get()方法...按 Ctrl + t 键,直接弹出来右边小窗口,点进去就ok啦    

C# 接口 与 类的 区别

问题描述 C# 接口 与 类的 区别 C# 接口与类的作用的区别,什么时候该用接口,什么时候改用类.比如,不用知道具体的子类是什么,调用通用的接口,这个用基类实现也行,用接口实现也行.PS:这里不用讨论基本概念,想从最能突出各自作用的一些点做更深刻的说明. 解决方案 C#不允许多继承,比如asp.net的page,winforms里的control form,已经有一个基类了,就不能再继承一个抽象类,只能使用接口. 接口不能包含代码实现.私有字段,它提供了方法的约定,用来规范相同或者相似功能的一

实例讲解Android应用开发中Fragment生命周期的控制_Android

一.Fragment的生命周期初探 因为Fragment必须嵌入在Acitivity中使用,所以Fragment的生命周期和它所在的Activity是密切相关的. 如果Activity是暂停状态,其中所有的Fragment都是暂停状态:如果Activity是stopped状态,这个Activity中所有的Fragment都不能被启动:如果Activity被销毁,那么它其中的所有Fragment都会被销毁. 但是,当Activity在活动状态,可以独立控制Fragment的状态,比如加上或者移除F

Android中的Activity生命周期总结_Android

概述 有图有真相,所以先上图: 上图是从Android官网截下的Activity的生命周期流程图,结构非常清晰,它描述了Activity在其生命周期中所有可能发生的情况以及发生的先后顺序,下面就将结合此图详细介绍一下Activity的生命周期. Activity四大基本状态 Activity生命周期一般分为四个基本状态,分别是活动状态(running),暂停状态(paused),停止状态(stopped)和死亡状态. 1.活动状态(running) 活动状态一般是指该Activity正处于屏幕最

Webkit中HTML5 Video的实现分析 (三) - MediaPlayer & MediaPlayerPrivate的生命周期

明确主要类的生命周期有助于更好理解Webkit中视频的工作流程.下图展示了类间的引用关系. 如HTMLVideoElement与一个MediaPlayer对应,MediaPlayer与MediaPlayerPrivate一一对应,它们都是一个组合关系,当所有者自身被析构时,会自动释放引用的实例.这个过程都是使用OwnPtr智能指针来实现的.   OwnPtr赋值操作的代码:        OwnPtr& operator=(std::nullptr_t) { clear(); return *t

Android中的Activity生命周期总结

概述 有图有真相,所以先上图: 上图是从Android官网截下的Activity的生命周期流程图,结构非常清晰,它描述了Activity在其生命周期中所有可能发生的情况以及发生的先后顺序,下面就将结合此图详细介绍一下Activity的生命周期. Activity四大基本状态 Activity生命周期一般分为四个基本状态,分别是活动状态(running),暂停状态(paused),停止状态(stopped)和死亡状态. 1.活动状态(running) 活动状态一般是指该Activity正处于屏幕最