EJB 中的session facade模式应用

EJB 中的session facade模式应用 发表时间: Aug 5, 2002 1:52 PM 回复

在使用EJB中,一般有很多实体Bean,那么是不是所有的客户端如JSP直接和这些实体bean操作呢。

session facade模式说:不是,所有的Jsp客户端程序和一个总的session bean交互操作,而session bean再和很多entity bean操作。

这样做,有下面的好处:
减少网络负载:不必每次客户调用启动name lookup
中心安全管理;所有关键操作都在一个session bean中,相当于中心机房。
事务跟踪的可控制;事务跟踪的过程在都在一个session bean中,容易发现 修改。
降低偶合性:客户端程序和实体bean基本失去联系,客户端变化再大或实体bean变化,都不会影响到对方。

深入描述:
http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-facade.html

UP

恩. 阅

很有道理,能不能把这种思路应用到MVC中呢?

页面(view)=》Action(Control)=》sessionBean(model)=》实体Bean(model)

这样得构架如何?

你的思路对的 ,实际我的项目应用中就是这么做的
所有Jsp都共用一个session bean ,其实这也是fascade模式
在这个sessionbean中 主要处理和其他Javabean或EJB的交互功能

这样Jsp中基本没有Java代码,同时我可以使用jsp的set property=*这个强大功能,方便表单数据录入

其实这里的session bean我感觉更多的担当的是business logic进行逻辑处理。

如果说要用mvc模式的话,Structs还是不错的。

我的意思是:这个session bean是代表所有的business logic的javabean来和前台jsp互动

这就是STRUCTS做的事情,可以到APACHE上去看一下

在sessionbean中控制事务,sessionbean应该无所谓有状态或是无状态。

一般大家在sessionbean中写事务,是用自己定义的,还是用容器的required默认呢?

不管是session facade,还是client delegate,还是DAO,说白了,都是降低
耦合,便于维护和提交软件的灵活性。所以,有人说,系统的层次感越明显,系统就越灵活还是有一定道理的。呵呵

当年还是个孩子,哈哈哈哈