有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jakarta ee如何设置Java EE6应用程序结构

因此,在阅读了DDD及其所有好处和荣耀之后,JavaEE似乎并没有让您轻松地做到这一点。我想做一个这样的结构:


存储库
应用程序
看法

然而,在这个答案的评论中DDD and application layer似乎应用程序层,我认为它将是所有服务都用@Stateful、@WebService等注释的层,而不是它真正应该位于的位置。看起来域模型应该有这些注释

所以现在的问题是:人们如何构建他们的应用程序?您将不同的注释放在哪里,以及它们如何相互使用。有人能帮我理解如何构造JavaEE6Web应用程序吗?请提供帮助,不要说我是如何在一个特定的工具或类似的东西中实现它的,而是说实际的类去了哪里,以及不同的层打算做什么

我对从哪里开始以及如何组织感到沮丧


共 (2) 个答案

  1. # 1 楼答案

    下面是一个可能有用的示例->EAR Testing

    它被称为“耳朵测试”,但也可以很容易地应用于构建战争文件。为了回答这个问题,我将把示例中提到的eartesting目录更改为wartesting

    EAR文件和WAR文件几乎相同,因为在JavaEE规范级别,我们决定允许war文件包含EJB、CDIBean等

    该示例使用Maven构建系统,有两个模块,一个用于“数据对象”,另一个用于“业务逻辑”。似乎符合你的想法,可能是一个有用的起点。它包含一个带有EJB单元测试的小样本应用程序

    您可能还没有读过,但人们通常认为EJB很难测试。现在已经没有了,这个例子展示了最新的符合规范的解决方案,所以你可以从这个设置开始一石二鸟

    其中不包括一个模块,用于创建最终的WAR文件,并在生产中部署。要创建它,只需添加第三个模块

    • 测试/商业模式
    • 测试/业务逻辑
    • 战争测试/商业战(新增)

    busines-war中,您将有一个pom.xml如下所示:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <parent>
        <groupId>org.superbiz</groupId>
        <artifactId>myear</artifactId>
        <version>1.1-SNAPSHOT</version>
      </parent>
    
      <modelVersion>4.0.0</modelVersion>
    
      <artifactId>business-war</artifactId>
      <packaging>war</packaging>
    
      <dependencies>
        <dependency>
          <groupId>org.superbiz</groupId>
          <artifactId>business-model</artifactId>
          <version>${project.version}</version>
        </dependency>
        <dependency>
          <groupId>org.superbiz</groupId>
          <artifactId>business-logic</artifactId>
          <version>${project.version}</version>
        </dependency>
        <dependency>
          <groupId>org.apache.openejb</groupId>
          <artifactId>javaee-api</artifactId>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>
    

    然后创建以下目录:

    • wartesting/business war/src/main/java
    • wartesting/business war/src/main/webapp

    我们会说,例如,您将以下文件添加到每个:

    • wartesting/business war/src/main/java/org/superbiz/Foo。爪哇
    • wartesting/business war/src/main/webapp/WEB-INF/WEB。xml
    • wartesting/business war/src/main/webapp/index。html

    一旦构建,您应该在wartesting/business-war/target/下获得一个war文件,其中包含:

    • WEB-INF/web.xml
    • WEB-INF/classes/org/superbiz/Foo.class
    • WEB-INF/lib/business-model-1.1-SNAPSHOT.jar
    • index.html
  2. # 2 楼答案

    对于如何构造应用程序,没有具体的规则。最好是运用常识,同时观察别人是如何做的

    您可以生成weld团队提供的一个简单maven项目,以了解基本Java EE应用程序的结构:

    mvn archetype:generate -DarchetypeArtifactId=jboss-javaee6-webapp -DarchetypeGroupId=org.jboss.weld.archetypes -DarchetypeVersion=1.0.1.CR1 -DarchetypeRepository=central
    

    当然,你会在github或java上找到许多其他的例子。网