Перейти к основному содержанию

Начало работы

ActiveJ - это минималистичная и свободная от шаблонов Java-платформа, которая призвана заменить Spring, Spark, Micronaut и другие подобные решения. Он обладает богатым стеком технологий с эффективной моделью программирования async и мощной библиотекой DI ActiveJ Inject.

ActiveJ состоит из нескольких слабо связанных компонентов, которые дополняют и расширяют возможности друг друга: ядро async, эффективная обработка ввода-вывода, высокопроизводительные альтернативы Jetty и Netty, а также удобные загрузочные утилиты.

В этом уроке мы создадим простой HTTP-сервер, который будет посылать приветствие "Hello World!". С помощью ActiveJ Launchers, в частности подкласса HttpServerLauncher , и ActiveJ Inject DI вы можете написать полнофункциональный сервер примерно за 10 строк кода.

Что вам понадобится:#

Какие технологии ActiveJ будут использоваться:#

Чтобы продолжить работу с этим руководством, у вас есть три варианта:#

  • Создайте приложение из архетипа Maven .
  • Загрузите и запустите рабочий пример
  • Следуйте пошаговому руководству

Создание из архетипа Maven#

Просто введите следующую команду в терминале:

mvn archetype:generate -DarchetypeGroupId=io.activej -DarchetypeArtifactId=archetype-http -DarchetypeVersion=5.0-beta2

Проект будет автоматически сгенерирован на вашей машине. Откройте WebApp и запустите его метод main . Затем откройте ваш любимый браузер и перейдите по адресу localhost:8080.

Пример работы#

Клонируйте ActiveJ локально и импортируйте его как проект Maven. Проверьте филиал. Перед запуском примера выполните сборку проекта (Ctrl F9 для IntelliJ IDEA).

Затем откройте класс HttpHelloWorldExample , который находится по адресу activej/examples/tutorials/getting-started и запустите его метод main . Откройте ваш любимый браузер и перейдите по адресу localhost:8080.

Пошаговое руководство#

1. Настройте проект#

Сначала создайте папку для приложения и постройте соответствующую структуру проекта:

getting-started└── pom.xml└── src    └── main        └── java            └── HttpHelloWorldExample.java

Далее необходимо интегрировать ActiveJ в ваш проект. Есть два способа сделать это. Первый **** вариант - добавить зависимость Maven в ваш проект. Просто настройте файл pom.xml следующим образом:

<?xml version="1.0" encoding="UTF-8"?><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/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>
  <groupId>io.activej</groupId>  <artifactId>tutorial-getting-started</artifactId>  <version>5.0-SNAPSHOT</version>
  <name>Tutorials : Getting-Started</name>
  <properties>    <maven.compiler.source>1.8</maven.compiler.source>    <maven.compiler.target>1.8</maven.compiler.target>  </properties>
  <dependencies>    <dependency>      <groupId>io.activej</groupId>      <artifactId>activej-launchers-http</artifactId>      <version>${project.version}</version>    </dependency>    <dependency>      <groupId>ch.qos.logback</groupId>      <artifactId>logback-classic</artifactId>      <version>1.2.3</version>    </dependency>  </dependencies></project>

Второй ** вариант - клонировать ActiveJ с GitHub, импортировать его как проект Maven , проверить ветку v5.0-beta2** и запустить следующий скрипт в директории проекта:

./install.sh

Затем настройте файл pom.xml , как в примере выше. Убедитесь, что SDK вашего проекта установлен на 1.8.

2. Написать HttpHelloWorldExample класс#

После того, как вы интегрируете ActiveJ в свой проект одним из предложенных способов, запишите следующий код HttpHelloWorldExample.java:

public final class HttpHelloWorldExample extends HttpServerLauncher {  @Provides  AsyncServlet servlet() {    return request -> HttpResponse.ok200().withPlainText("Hello World");  }
  public static void main(String[] args) throws Exception {    Launcher launcher = new HttpHelloWorldExample();    launcher.launch(args);  }}

Во-первых, мы расширяем HttpHelloWorldExample из HttpServerLauncher для управления жизненным циклом приложения. В этом примере единственное, что важно знать о суперклассе, это то, что он реализует метод launch , который запускает наш сервер.

Далее мы предоставляем AsyncServlet, который получает HttpRequest от клиентов, создает HttpResponse и отправляет их. @Provides аннотация означает, что данный метод доступен для привязки в качестве слушателя корневой конечной точки HTTP.

Чтобы определить обработку полученных запросов, мы переопределяем метод AsyncServlet.serve с помощью лямбды. Мы создаем обещание из HttpResponse с кодом 200 и телом "Hello World!". ActiveJ полностью асинхронный, поэтому наши HTTP-сервлеты тоже асинхронные. Простой HttpResponse можно заменить на Promise из HttpResponse , чтобы сделать его асинхронным.

Наконец, мы определяем метод main и запускаем наш сервер с помощью метода launch . Этот метод инжектирует зависимости, запускает приложение, запускает его и останавливает при необходимости.

3. Запустите приложение#

Теперь давайте протестируем приложение. Сначала запустите HttpHelloWorldExample.main, затем откройте ваш любимый браузер и перейдите по адресу localhost:8080 Вы получите Hello World! сообщение, обработанное сервером. Поздравляем, вы только что создали свое первое приложение ActiveJ!

Что дальше?#

Чтобы сделать ActiveJ более удобным для разработчиков, мы создали десятки учебников и примеров разного масштаба, представляющих большинство возможностей платформы. Нажмите "Далее", чтобы перейти к следующему уроку. Вы также можете сначала изучить ActiveJ docs .