EJB - 如何将复杂对象传输到表示层?

时间:2015-07-01 06:37:31

标签: java service ejb javabeans facade

我是Ejb新手,所以这可能是一个新手问题。 我正在开发一个具有通用服务外观模式的应用程序;这样,我的本地和远程接口无法知道我的会话bean参数,所以我只能在facade和表示层之间传递简单数据。 哪个是最好的解决方案,可以在外观和表示层之间传递我的bean的相同内容?我应该以某种方式复制我的bean以使其在表示层之外可见吗?

由于

1 个答案:

答案 0 :(得分:1)

不应在服务层和表示层之间传输SessionBean。通常,您的表示层应该具有使用@EJB CDI框架初始化的远程或本地服务接口的引用。

幕后:

然后,CDI框架会注入服务接口实现的实例。如果您正在远程使用该服务,它将使用RMI技术获取该实例并使用JRMP协议传输存根。

我认为您不希望在这些层之间传输这些SessionBeans。您需要将复杂的DTO(数据传输对象)作为参数传递给SessionBean的方法。我的理解是对的吗?

如果是这样,你可能想要创建一些POJO(普通的旧java对象,其中包含一些属性或字段以及一些setter getter方法+至少是一个默认的no-arg constructor),它实现了{{ 1}}接口。

在这种情况下,您可以使用此java对象作为SessionBean方法的参数。

希望这会有所帮助,

祝你好运。