java - 如何连接我的 Java EE 应用程序中的各个部分

标签 java jakarta-ee jpa ejb

我正在制作一个 Java EE 应用程序,只是为了使用我在阅读书中学到的知识。我制作了一个简单的实体和一个 DAO 对象,它们对该实体执行不同的操作,例如创建、更新等。然后在我的 EJB 中,我想使用这个 DAO 对象,以便以后可以将它公开给 JSF 等。

我在理解如何在应用程序的不同层中使用不同类的对象时遇到一些问题。如何让它们相互暴露?

我是否只是像在常规 Java SE 中那样做?具有不同类的属性并在我想要的类中实例化它们? (不,可能不是,我已经看到了@Inject 等的用法,但我一点都不明白。而且我也不会在我可以使用它的时候)

我会欣赏一些关于我们何时/如何使用不同注释以及我们如何连接不同层的文本,而不仅仅是一些显示它的代码。

如果有人有空闲时间,我会参加 Java 聊天 =)

最佳答案

您问的问题太笼统了。拿一些关于 Java EE 的好书(有很多)。为了更好地理解依赖注入(inject),我推荐官方 Weld documentation .然而,这里有一个典型示例旨在向您展示如何连接不同的 Java EE 层:

JPA 实体:

@Entity
public class Employee {

  @Id
  private Long id;

  private String name;

  //getters and setters
}

EJB bean:

@Stateless
public class EmployeeService {

  //The entity manager will be injected automatically  
  @PersistenceContext
  private EntityManager em;

  public Employee findEmployeeById(Long id) {
    return em.find(Employee.class, id);
  }

}

JSF Controller (假设它是 CDI-bean):

@Named
@SessionScoped
public class EmployeeController implements Serializable {

  //using CDI @Inject annotation empService will be initialized automatically
  @Inject
  private EmployeeService empService;

  //this method can be called from .xhtml page
  public String obtainEmployeeName(Long id) {
    String empName = "";
    Employee emp = empService.findEmployeeById(id);
    if (emp != null) {
      empName = emp.getName();
    }
    return empName;
  }
}

xhtml 页面:

<h:outputText value="#{employeeController.obtainEmployeeName(3)}" />

更新 一些可能有帮助的书:

  • Pro JPA 2: Mastering the Java Persistence API
  • Core JavaServer Faces (3rd Edition)
  • Beginning Java EE 6 with GlassFish 3
  • 这些很受欢迎,覆盖面很广。

    关于java - 如何连接我的 Java EE 应用程序中的各个部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7777379/

    相关文章:

    java - 无法使用 outputStreamWriter() 将字符串从应用程序发送到 servlet

    java - 实体管理器-创建查询-嵌套选择

    java - 在 maven 项目中找不到目标运行时

    java - 如何将我的表单与操作链接起来?

    java - JSF 中的 'binding' 如何工作?

    java - 何时在 JPA 中使用一对多或多对一

    java - 如何在 hibernate-validator 中创建可选/可为空的属性?

    java - 如何以某种格式向 JFrame 添加许多组件

    Java 可变循环

    java - Spring MVC——请求的资源()不可用