Java RMI 和 Hibernate:管理会话和事务
在我的 ASP.NET 项目中,我遵循每个请求一个事务的模式,使用自定义 HttpModule 来处理 NHibernate。我最近一直在使用 RMI 开发 Java 客户端和服务器应用程序,并且正在寻找一种处理会话和事务的好方法,目前这是手动完成的。
是否有办法拦截 RMI 请求,以便我可以在适当的情况下打开/关闭会话,或者我应该考虑使用 Spring 之类的东西?我是 Java 新手,所以请温柔点:)
谢谢
In my ASP.NET projects I follow a transaction-per-request pattern for dealing with NHibernate using a custom HttpModule. I've recently been working on a Java client and server app using RMI and am looking for a nice way to handle sessions and transactions, currently this is done manually.
Is there anyway to intercept the RMI request so I can open/close the session where appropriate or should I be looking into using something like Spring? I'm new to Java so please be gentle :)
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Spring 将是管理这个问题的好方法。它使用面向方面的编程技术来管理事务。通常它们被添加到 POJO 服务接口中。您可以选择使用 RMI 公开 POJO 服务,但这只是众多选择中的一种。
我不会将事务与会话关联起来,除非它运行时间很长。
另一种方法是采用 EJB 3.0。它借鉴了 Spring 的很多东西:依赖注入、面向方面的编程。它还具有声明式事务模型。
Spring would be a good way to manage this. It uses aspect oriented programming techniques to manage transactions. Usually they're added to POJO service interfaces. You can choose to expose your POJO services using RMI, but that's just one choice among many.
I wouldn't associate a transaction with a session unless it was very long running.
Another approach would be to embrace EJB 3.0. It took a lot from Spring: dependency injection, aspect oriented programming. It also has a declarative transaction model.