Статьи

Проект Java EE7 и Maven для новичков — часть 3 — определение модулей служб ejb и сущностей jpa

Возобновление из предыдущих частей

Часть № 1
Часть 2

Мы возобновляем третью часть, у нас уже есть родительский пом, и мы уже определили пом для нашего военного модуля. В нашей первоначальной настройке мы определили, что наше приложение будет включать jar служб в форме ejb jar. Именно здесь будут находиться наши корпоративные Java-бины, в частности, сессионные бины. Мы также определили другой модуль (слой), который будет размещать объектные компоненты (компоненты представления базы данных), так называемую модель домена.

Определение модуля услуг (ejb)

Под родительской папкой pom мы создаем новую подпапку, как мы делали с модулем war. В этой папке мы создаем файл pom.xml со следующим содержимым. Название папки — sample-services. Пом выглядит так. В конце концов, это довольно много, пока.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>gr.javapapo</groupId>
    <artifactId>sample-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>sample-services</artifactId>
  <name>sample-services</name>  
   <description>EJB service layer</description>
  <packaging>ejb</packaging>
 <build>
        <finalName>${project.artifactId}</finalName>
  </build>
        <dependencies>
                <dependency>
                        <groupId>javax</groupId>
                        <artifactId>javaee-api</artifactId>
                </dependency>
        </dependencies>
</project>

Помните, что мы уже определили в разделе управления зависимостями нашего родительского pom версию javaee-api jar, а также в разделе управления плагином плагин maven, который позаботится о конкретной упаковке нашего ejb.jar требует. Это Maven-EJB-плагин. Вернитесь к родительскому пом и найдите 2 вышеуказанных пункта. Из-за всех этих элементов, определенных в родительском pom, наш pom службы ejb выглядит очень минимальным. Maven по соглашению позаботится о большинстве вещей. Будет запущен плагин maven ejb, так как мы определили, что для этого модуля необходима упаковка ‘ ejb ‘.

Структура нашего проекта выглядит следующим образом:

CapturFiles

Определение модуля сущностных компонентов (ejb)

Под родительской папкой pom мы создаем новую подпапку, как мы делали с предыдущим модулем ejb. Мы назовем это sample-domain. Это модуль, который мы будем кодировать наши bean-компоненты представления базы данных, так называемые bean-компоненты Entity, следуя спецификации JPA2.

Пом выглядит довольно просто.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>gr.javapapo</groupId>
    <artifactId>sample-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>sample-domain</artifactId>
  <packaging>ejb</packaging>
  <name>sample-domain</name>
  <description>JPA entities for our project - domain model</description>
  <build>
        <finalName>${project.artifactId}</finalName>
  </build>
  <dependencies>
                <dependency>
                        <groupId>javax</groupId>
                        <artifactId>javaee-api</artifactId>
                </dependency>
        </dependencies>
</project>

Упаковка по-прежнему является ejb, поскольку она будет содержать классы EJB, так называемые Entity Beans .

Есть еще одна вещь, которую нам нужно упаковать, поскольку этот модуль собирается «размещать» наши доменные объекты, это XML-дескриптор persistence.xml, который определяет источник данных, к которому наше приложение будет подключаться. В Java EE 7 этот файл был значительно упрощен, и мы можем даже пропустить определение источника данных, так как там уже один по умолчанию. Посмотрите здесь . С точки зрения упаковки, которая нас сейчас больше интересует, то, что вам нужно сделать, находится в папке src / main / resources, чтобы создать новую папку с именем META-INF и там, чтобы разместить файл persistence.xml, как на картинке ниже.

CapturFiles_2

Содержимое файла persistence.xml на данный момент не является релевантным (мы сосредоточимся на следующих постах), вы можете посмотреть пример в этой ветке git поста (ов).

Примечание, касающееся создания папок: если вы добавляете модули Maven с помощью IDE, например, Eclipse или IntelliJ, после создания нового модуля и определения POM, IDE автоматически создает стандартные папки макетов, которые должен иметь ваш модуль, в соответствии с Maven конвенций. Если вы читаете этот пост и пишете свой код, используя более простой инструмент, например, простой текстовый редактор, то вам нужно создать структуру папок src / main самостоятельно.

Вот и все для этого поста, мы добавили еще 2 модуля для нашего приложения, но нам все еще не хватает того, который собирается упаковать их все, это модуль ear. Мы также не рассмотрели «взаимозависимости» наших модулей, это то, что мы собираемся сделать, в следующем специальном посте «ухо», где все собираются вместе.

Код для этих простых poms можно найти в проекте bitbucket, под тегом post3 .