我有一个Java EE项目通过WildFly访问MySQL数据库。在EJB中,我有一个实体(Book
)和一个会话Bean(BookBean
),它公开了从远程客户端管理数据库的方法。
如果我有方法getAllBooks()
,例如,返回类型List<Book>
,也就是说,它返回数据库中所有书籍的列表,客户端如何知道实体?
EJB实现放置在客户端(BookBeanRemote
)中的远程接口,因此后者必须知道实体,因为该方法具有返回类型List<Book>
。这种方法非常糟糕,因为这意味着客户端和服务器都必须知道有关实体的所有信息。
我知道我应该使用会话外观和服务定位器,但我无法找到一个很好的更新教程,解释它们如何工作以及如何在一个简单的例子中使用它们。
正如here所述,Session Facades向客户公开了所有内容,而不会增加复杂性。你能用Session Facades提供一个例子吗?我的客户端是一个简单的Java类。提前谢谢。