Java 9 Модули (проект Jigsaw)

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr

Данная статья написана командой Vertex Academy. Это одна из статей из нашего Учебника по Java 9. Надеемся, что данная статья Вам будет полезна. Приятного прочтения!

1. Введение

В Java 9 появился долгожданный Project Jigsaw, или же просто модули. Они позволяют сделать приложение меньше в обьеме, более инкапсулированным и совершенным. В этой статье мы рассмотрим создание модулей.

2. Создание первого модуля

Для того чтобы создать модуль в IntelliJ IDEA необходимо в заранее созданном приложении нажать правой кнопкой на модуль и выбрать "new -> module" далее указываем имя и создаем наш первый модуль. В нашем случае имя модуля - human

Важный момент, для того чтобы модуль был полноценным, ему нужно добавить module-info.java, при чем создан он должен быть строго в папке src. Содержимое файла, в нашем случае, будет выглядеть так 

Дальше все как в обычном Java приложении, можем создавать пакеты, классы и тд.

Создадим пакет services, и в нем следующий класс

Поскольку создавать программное обеспечение без знаний нельзя, то их нужно как-то получить. Для этого создадим другой модуль, назовем его knowledge-base и создадим в нем вот такую структуру

В классе Knowledge создадим метод obtain(String requirements)

Этому классу необходим класс KnowledgeHelper для получения знаний по предметной области. Класс находится в пакете internal и выглядит так

Итак, вроде бы все создали, но. Нужно ведь создать module-info.java

Ключевое слово exports используется, чтобы указать какие пакеты из модуля могут использоваться в других модулях. В данном случае мы открываем пакет knowledgebase, но НЕ internal. Если мы хотим открыть доступ и к нему, то его нужно явно указать так

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

Здесь закончили, возвращаемся к модулю human.  Для того, чтобы SoftwareDeveloper мог пользоваться знаниями необходимо изменить наш module-info.java

Ключевое слово requires используется, чтобы указать какие модули нужны для работы данного модуля. В этом случае, модулю human для работы необходим модуль knowledge.base.

Помним, что экспортируем мы пакеты, а требуем - модули.

Теперь со спокойной душой можно добавить импорт в класс SoftwareDeveloper

Проверим как все работает, для этого создадим в модуле human пакет main и класс Owner

При запуске увидим следующее

На этом статья заканчивается, но не новинки Java 9.

Есть возможность записаться на наши курсы по Java. Детальную информацию смотрите у нас на сайте.

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr
Самоучители--узнать детальнее--