【问题标题】:EJB 3.1 Application DesignEJB 3.1 应用程序设计
【发布时间】:2013-08-06 15:32:45
【问题描述】:

我正在为一个非常简单的学生资源管理系统 (SRMS) 开发一个应用程序

我应该使用 Enterprise Java Beans、一个独立的 Java GUI 客户端和一个 Web 浏览器客户端

如果我将Servlets 用于浏览器客户端,我是否应该将所有逻辑都放在企业bean 中,然后只调用Servlet 中的方法?所以我也可以从独立的 GUI 应用程序中调用相同类型的方法。

令人困惑的是,我的 Servlets 中不应该有任何逻辑,我应该在应用程序的 bean 层中拥有所有逻辑。

还有一件事:Session BeanSession Bean from Entity Classes 有什么区别?

GUI 客户端也将使用登录,但这是浏览器客户端也将使用的唯一类似操作。浏览器客户端只能搜索和查看部分数据。

【问题讨论】:

    标签: java jakarta-ee servlets ejb javabeans


    【解决方案1】:

    您可以将您的业务逻辑放在 EJB 会话 bean 中,而后者又使用 EJB JPA 实体来访问例如数据库。如果您的所有逻辑都必须驻留在 EJB 层中,那么您必须采用这种方式。因此,EJB 会话 bean 是您的业务逻辑的接口。 JPA 实体类映射到 RDBM 中的表。

    这样 servlet 和独立的命令行应用程序可以调用 EJB 会话 bean 中定义的方法。会话 bean 应该返回准备好在视图中显示的数据传输对象(例如,在 servlet 中没有进一步处理)。

    根据经验,尽量限制自己只调用一个 EJB 方法,例如,如果用户单击“搜索”按钮。否则可能会有太多流量,尤其是对于命令行应用程序,因为该应用程序通常不在同一主机上运行。所以要注意EJB会话bean接口的设计。

    EJB 会话 bean 是托管 bean(由应用服务器控制),例如提供声明性事务/安全性。

    EJB 实体 bean 已被弃用,并已被 JPA 取代。

    【讨论】:

    • 谢谢你,这是一个很好的答案。但是在 Nebeans 中,您仍然可以选择创建 Session Bean For Entity Classes,并在有关 Java EE 6 的 Netbeans 教程中使用。无视图会话 bean,是否意味着它根本不需要接口?
    • 这可能意味着带有“EJB JPA 实体”的“EJB 会话 bean”(这就是我在第一段中所描述的)。 “EJB JPA 实体”已替换“EJB 实体 bean”:Wikipedia
    • 由于某种原因,我试图通过普通会话 bean 访问实体外观,但无法正常工作。我正在尝试访问数据库以获取一些用户,但它不起作用。但是当我从 servlet 执行相同操作时它会起作用
    • 请发布关于这个问题的另一个问题 - 这不再是设计,​​已经实现了:-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 2011-12-13
    • 2012-01-19
    • 2012-04-11
    • 2012-02-26
    • 2011-04-26
    相关资源
    最近更新 更多