liuqiancs 2008-11-17 11:18
浏览 173
已采纳

关于项目夹杂了B/S和C/S中hibernateSession开关的问题

问题如下:在一个高速公路违章车辆管理项目中(总体是B/S,其中还有C/S),采用SSH技术架构,前端监测点监测车辆信息,比如说速度,车牌信息等,然后自动发送到后台中心进行业务处理,其中会有对数据库的操作,管理人员通过浏览器登录该系统,可以进行违章车辆查看等等一系列操作,在B/S这块,session都是采用Spring给提供好的过滤器,dao也是继承HibenateDaoSupport,没有疑问我现在遇到了这样一个问题,前端监测点当监测到车辆信息的时候,会自动发送相关车辆信息给后台业务层,感觉就像个事件一样,车辆触发了监控点,这样就不完全是B/S了,而是我开始所说的C/S了现在,我业务层的事务仍然是交给Spring来处理,对数据库的操作也仍然是交给B/S中的dao处理,不想重新写dao接口的其他实现了,但是我的session开关我就不知道在哪儿处理了,在B/S中是交给Spring的过滤器的,而在这种c/s中,session在哪儿开关了,并且我要确保是和业务层以及dao中同一个Session,简单点说,就相当于在一个应用程序中,使用Spring+Hibernate,session如何处理开关,并且确保业务层dao层,以及我开启的session是同一个session
希望各位大侠们提供具体代码,帮助帮助小弟,非常感谢(附:原本想看下OpenSessionInView中Session是如何处理的,以便参考,但是看不懂)

  • 写回答

6条回答 默认 最新

  • iteye_18017 2008-11-17 12:01
    关注

    不管你是通过什么方式来读取Hibernate,就是在业务请求开始的时候,打开Session,在业务请求结束的时候关闭会话.
    这就衍生出一个问题,何时才能知道业务请求已经开始,何时才能知道业务请求结束? 这个问题可以转换成一个业务请求的拦截的问题. 拦截首选AOP, 如果不愿意引入第三方框架, 那就用动态代理来实现对业务请求方法的拦截:
    拦截到业务请求方法时,打开Session;
    执行业务请求方法;
    拦截器关闭Session;
    这种操作Session的操作模式是与B/S还是C/S无关的, 不妨试试.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站