我是Ejb新手,所以这可能是一个新手问题。 我正在开发一个具有通用服务外观模式的应用程序;这样,我的本地和远程接口无法知道我的会话bean参数,所以我只能在facade和表示层之间传递简单数据。 哪个是最好的解决方案,可以在外观和表示层之间传递我的bean的相同内容?我应该以某种方式复制我的bean以使其在表示层之外可见吗?
由于
答案 0 :(得分:1)
不应在服务层和表示层之间传输SessionBean。通常,您的表示层应该具有使用@EJB
CDI框架初始化的远程或本地服务接口的引用。
幕后:
然后,CDI框架会注入服务接口实现的实例。如果您正在远程使用该服务,它将使用RMI技术获取该实例并使用JRMP协议传输存根。
我认为您不希望在这些层之间传输这些SessionBeans。您需要将复杂的DTO(数据传输对象)作为参数传递给SessionBean的方法。我的理解是对的吗?
如果是这样,你可能想要创建一些POJO
(普通的旧java对象,其中包含一些属性或字段以及一些setter getter方法+至少是一个默认的no-arg constructor
),它实现了{{ 1}}接口。
在这种情况下,您可以使用此java对象作为SessionBean方法的参数。
希望这会有所帮助,
祝你好运。