我是Ejb开发人员的新手,所以这可能是一个新手问题。
我正在使用通用服务外观模式开发应用程序;这样,我的本地和远程接口无法知道我的会话bean参数,因此我只能在外观和表示层之间传递简单的数据。
哪种最佳解决方案可以在外观和表示层之间传递相同的bean内容?我应该以某种方式复制我的bean,使其在表示层之外可见吗?
谢谢
最佳答案
您的SessionBean不应在服务层和表示层之间转移。通常,您的表示层应具有您的远程或本地服务接口的引用,该引用是使用@EJB
CDI框架初始化的。
幕后花絮:
然后,CDI框架将注入您的服务接口实现的实例。如果您正在远程使用该服务,则它将使用RMI技术来获取该实例并使用JRMP协议传输存根。
我认为您不想在这些层之间转移这些SessionBean。您需要传递复杂的DTO(数据传输对象)作为SessionBean方法的参数。我的理解正确吗?
如果是这样,您可能想创建一些实现POJO
接口的constructor
(普通的旧Java对象,其中包含一些属性或字段以及一些setter getter方法以及至少一个默认的无参数java.io.Serializable
)。
在这种情况下,可以将此java对象用作SessionBean方法的参数。
希望这会有所帮助,
祝好运。
关于java - EJB-如何将复杂的对象转移到表示层?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31154133/