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

EJB - How to transfer complex object to presentation tier?

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

谢谢

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

幕后花絮:

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

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

如果是这样,您可能想要创建一些 POJO(普通旧 java 对象,其中包含一些属性或字段和一些 setter getter 方法 + 至少一个default no-arg constructor) 实现了 java.io.Serializable 接口。

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

希望这会有所帮助,

祝你好运。