Как настроить структуру приложения Java EE6 - PullRequest
4 голосов
/ 17 февраля 2012

Так что после прочтения о DDD и всем его преимуществах и славе кажется, что Java EE не облегчает вам задачу.Я думал создать такую ​​структуру:

Домен
Репозиторий
Приложение
Вид

Однако в комментарии к этому ответу DDD и прикладной уровень кажется, что слой Application , который я думал, будет слоем со всеми службами, аннотированными с помощью @Stateful, @WebService и т. Д., Это не то место, где он должен бытьв. Кажется, что доменные модели должны иметь эти аннотации.

Итак, теперь вопрос: как люди структурируют свои приложения?Где вы размещаете различные аннотации и как они используют друг друга.Может ли кто-нибудь помочь мне понять, как я могу структурировать веб-приложение java ee 6?Пожалуйста, помогите и скажите не о том, как я это делаю в конкретном инструменте или чем-то в этом роде, а о том, куда идут настоящие классы и для чего предназначены разные слои.

Я разочарован тем, с чего начать и как организовать.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Вот пример, который может быть полезен -> EAR Testing

Это называется «EAR Testing», но его также легко можно использовать для создания военных файлов. Для целей этого ответа я изменю каталог eartesting, упомянутый в примере, на wartesting

EAR-файлы и WAR-файлы практически идентичны, поскольку на уровне спецификации Java EE мы решили разрешить war -файлам содержать EJB, компоненты CDI и т. Д.

Этот пример использует систему сборки Maven и имеет два модуля: один для «объектов данных» и один для «бизнес-логики». Кажется, соответствует тому, что вы думаете о мышлении и может быть полезной отправной точкой. Он содержит крошечный пример приложения с модульными тестами для EJB.

Возможно, вы еще не читали, но часто люди считают, что EJB трудно тестировать. Их больше нет, и в этом примере показано последнее совместимое со спецификацией решение, поэтому вы можете убить нескольких зайцев одним выстрелом, начиная с этой настройки.

Что не включает в себя модуль для создания окончательного WAR-файла, который вы бы развернули в рабочей среде. Для его создания достаточно добавить третий модуль

  • wartesting / бизнес-модель
  • wartesting / бизнес-логика
  • wartesting / business-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 / бизнес-война / SRC / главная / Java
  • wartesting / бизнес-война / SRC / главная / WebApp

И скажем, например, что вы добавляете в каждый файл следующие файлы:

  • wartesting / бизнес-война / SRC / главная / Java / орг / superbiz / Foo.java
  • wartesting / бизнес-война / SRC / главная / веб-приложение / WEB-INF / web.xml
  • wartesting / бизнес-война / SRC / главная / веб-приложение / index.html

После сборки вы должны получить файл войны под wartesting/business-war/target/, содержащий:

  • WEB-INF/web.xml
  • WEB-INF/classes/org/superbiz/Foo.class
  • WEB-INF/lib/business-model-1.1-SNAPSHOT.jar
  • index.html
2 голосов
/ 17 февраля 2012

Нет конкретных правил о том, как вы должны структурировать свое приложение. Лучше всего использовать здравый смысл, а также наблюдать, как это делают другие.

Вы можете создать простой проект maven, предоставленный командой сварщиков, чтобы увидеть, как можно структурировать базовое приложение Java EE:

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

Наверняка вы найдете много других примеров на github или java.net

...