Что такое Java-фреймворки и зачем их использовать?
У каждого языка есть компромиссы. С Java компромисс между безопасностью, строгим тестированием и обратно совместимым языком приносит некоторые жертвы гибкости и оптимизации. Несомненно, есть некоторая многословность и вздутие живота, однако, JVM чрезвычайно привлекательна в качестве бэкэнда, если вы действительно хотите погрузиться в происходящее или перейти на более высокий уровень. Это мощный и был протестирован в самых суровых условиях. В конце концов, Java широко используется и хорошо разворачивается.
Однако не все принимают такое положение вещей, как они. Несколько человек попытались найти способ обойти Java, и все еще сохраняют мощь JVM. Первая волна была вокруг легких Java-фреймворков (некоторые из которых мы писали о: Dropwizard vs. Springboot ). Они предоставили легкие, современные фреймворки для Java и помогли сократить время разработки. Теперь есть вторая волна, которая недавно вышла на сцену. Эта волна — это микро-фреймворки Java.
Новая публикация: Java Micro Framework: новая тенденция, которую нельзя игнорировать http://t.co/l51yQNrzWd pic.twitter.com/v0JAPXfz6Q
— Такипи (@takipid) 10 июня 2015 г.
Что такое микро-фреймворк Java?
По мере развития языка одним неизбежным эффектом с каждым выпуском является то, что устоявшиеся библиотеки растут и расширяются. Через некоторое время большая часть функциональности этих библиотек больше не нужна для большинства проектов. Микро-фреймворки — это попытка решить эту проблему. Идея состоит в том, чтобы создать сфокусированное и гибкое решение, которое сведет процесс производства к его основам.
Микро-Java-фреймворки по сути являются продолжением легкого Java-фреймворка. Это самый легкий способ сделать Java сегодня. Как новички в этом блоке, они еще не были развернуты во всех типах производственной среды, но ранние производственные развертывания показали большой успех. Их привлекательность очевидна, и сейчас в этом пространстве очень много азарта и активного развития.
Сегодня я рассматриваю три наиболее популярных из доступных микро-фреймворков Java: Ninja Framework, Spark и Jodd.
Ninja Framework
Ninja — это полнофункциональная платформа Java для создания веб-сервисов и приложений. Он направлен на то, чтобы использовать положительные аспекты Play и Ruby on Rails и предоставлять их в чистом формате Java. Он использует концепцию MVC, чтобы упростить простоту и возможность последовательного написания приложений любого размера.
Как интегрированный программный стек, Ninja поставляется с обширным набором функциональных возможностей (например, анализ JSON, поддержка метрик, рендеринг HTML), что требует некоторых аннотаций и определений для ваших контроллеров. Многие из этих функций основаны на том, чтобы сделать Ninja удобным для DevOps инструментом. Включение этих библиотек делает Ninja простым в использовании. Что касается масштабируемости, то Ninja — это проект без сохранения состояния, который делает горизонтальное масштабирование просто вопросом добавления серверов.
Компромисс между функциональностью и простотой использования — это меньший выбор пользователя и большая площадь, чем у некоторых других инструментов в этом пространстве. Структура для разработки выбрана для вас, и набор исходных папок и файлов создается автоматически.
Популярность и библиотеки. На Github у Ninja 809 звезд и 288 вилок на момент написания, что сравнимо с Jodd, но значительно уступает Spark по популярности. Если вы хотите внести свой вклад, проверьте страницу Github. Для рендеринга HTML ниндзя использует Freemarker. Для обработки JSON и XML используется Джексон. Многие из основных библиотек написаны Ninja.
Начало работы: Начало работы с ниндзя довольно просто. Он основан на Maven, требуя запуска Java и Maven. Проекты ниндзя работают через архетипы Maven, которые позволяют пользователям создавать новые проекты с помощью одной команды после их создания. Чтобы начать свой первый проект, команда
1
|
mvn archetype:generate -DarchetypeGroupId=org.ninjaframework -DarchetypeArtifactId=ninja-servlet-archetype-simple |
Как только вы введете несколько значений и перейдете в каталог вашего проекта, выполнение следующего запустит Ninja в его «SuperDevMode» (который принимает изменения, которые вы делаете автоматически):
1
2
3
|
cd MY_INSTALLED_PROJECT mvn clean install // to generate the compiled classes the first time mvn ninja:run // to start Ninja's SuperDevMode |
Оттуда вы импортируете свой проект в выбранную вами IDE и начинаете кодировать. Для получения дополнительной информации ознакомьтесь с документацией .
Вывод: Ninja Framework переработал структуру Java для предоставления чего-то простого, масштабируемого и простого в использовании. Он предоставляет множество функциональных возможностей, которые позволяют пользователю быстро приступить к работе. В качестве фреймворка с полным стеком вы получаете большую площадь и меньшую настраиваемость, чем при использовании некоторых других опций.
искра
Чтобы не путать с Apache Spark, цель этого Spark состояла в том, чтобы разработать чистый Java-фреймворк, который можно было бы использовать для простого и простого создания REST API и / или веб-приложений. Spark — это гибкий и компактный фреймворк размером менее 1 МБ, который можно использовать для быстрой и простой разработки приложений. Первоначально вдохновленный Sinatra, Spark превратился в полностью реализованную веб-среду с вовлеченным сообществом разработчиков, которое продолжает поддерживать активный цикл выпуска.
Будучи микро-фреймворком, Spark приняла решение позволить пользователям выбирать свои шаблонные движки для разработки своего приложения. Гибкость, которую они предоставляют для выбора библиотек, позволяет пользователям выбирать лучшие варианты для своих проектов без каких-либо трудностей с привязкой или кривой обучения для особенностей экосистемы. А так как они сосредоточены на предоставлении решения небольшого размера, требуется небольшая конфигурация или шаблон.
Компромисс между гибкостью и простотой Spark — это меньшая функциональность, чем у других вариантов. Spark стремится быть максимально упорядоченным и понятным, устраняя необходимость во многих дополнительных усилиях, таких как чрезмерные аннотации и конфигурации XML. Чтобы быть сверхлегким, он жертвует некоторыми потенциально полезными функциями.
Начало работы. Начать работу в Spark очень просто. Требуется Java и Maven для запуска. Первый шаг — добавление зависимости Maven:
1
2
3
4
5
|
< dependency > < groupId >com.sparkjava</ groupId > < artifactId >spark-core</ artifactId > < version >2.2</ version > </ dependency > |
Второй шаг — импортировать Spark и начать кодирование:
1
2
3
4
5
6
|
import static spark.Spark.*; public class HelloWorld { public static void main(String[] args) { get( "/hello" , (request, response) -> "Hello World!" ); } } |
Для получения дополнительной информации ознакомьтесь с документацией .
Популярность и библиотеки: На Github у Spark на момент написания статьи было 2398 звезд и 542 вилки, что делает его легко самым популярным из трех фреймворков, которые я сегодня выделяю здесь. Если вы хотите внести свой вклад, проверьте страницу Github. Частью гибкости, предлагаемой Spark, является не блокирование пользователей в определенных библиотеках. Например, для рендеринга HTML вы можете использовать Freemarker, Mustaches, Velocity, Jade, Handlebars, Pebble или Water. Для того, что вы хотите использовать, добавьте зависимость Maven для его настройки.
Вывод: Spark избавляет от множества Java-приложений и предоставляет минималистичный и гибкий веб-фреймворк, который прост в настройке и может использоваться для создания широкого спектра Java-проектов. Однако, уменьшая объем, вы теряете некоторую функциональность, поэтому Spark не идеален для крупномасштабных веб-приложений.
Джодд
Jodd — это набор микро-фреймворков, инструментов и утилит для Java, поэтому, возможно, он не сопоставим напрямую с некоторыми другими здесь. Фактически, Spark, вероятно, может быть включен как компонент Jodd, например. Но драйвер для Jodd состоит в том, чтобы уменьшить объем и медлительность многих инструментов и сред Java, а также предоставить выбор сверхлегких платформ и инструментов. Вместо того, чтобы сгруппировать их все вместе в одно монолитное приложение, Джодд разбивает каждую библиотеку на отдельные части, что позволяет пользователю выбирать, какие из них использовать.
Jodd существует уже некоторое время, и за это время они создавали облегченные версии инструментов и утилит всякий раз, когда замечали необходимость. Держа инструменты и структуры отдельно и поставляя их как свободную связку, Jodd может сохранять чрезвычайно сфокусированные области для каждой отдельной части. У них есть платформы для обработки запросов, для DI-контейнеров, для анализа HTML5 и так далее. Может показаться, что подобная коллекция идет вразрез с идеей упорядоченных микро-фреймворков, но весь пакет занимает менее 1,5 МБ, поэтому занимаемая площадь невелика.
Компромисс с Джоддом в том, что это не сделано для вас. Функциональность большинства вещей есть в наборе библиотек, но вы должны испачкать руки и настроить его самостоятельно. Настраиваемость обеспечивает большой контроль и гибкость для пользователя, но это упрощает использование. К счастью, каждый отдельный инструмент прост и крошечен, поэтому погружение в код не требует углубления в море сложности. Документация на сайте Jodd также содержит некоторые рекомендации и лучшие практики.
Начало работы: Jodd построен с использованием Gradle и ориентирован на Java 1.5 и выше. Поскольку Jodd представляет собой набор инструментов, начать работу не так просто, как другие инструменты. Один из вариантов — скачать пакет Jodd, чтобы получить все модули. Другой вариант — собрать Jodd из источника через Git. Для этого
Клонируйте репозиторий Jodd Git:
1
|
git clone https: //github.com/oblac/jodd.git jodd |
затем создайте проект с помощью:
1
|
gradlew build |
Вы также можете установить Jodd в Maven. Для этого используйте команду:
1
|
gradlew install |
Для получения более подробной информации о различных модулях и некоторых примерах их использования, ознакомьтесь с документацией Jodd.
Популярность и библиотеки: на Github у Джодда 837 звезд и 243 вилки на момент написания, что делает его сопоставимым по популярности с ниндзя, но значительно уступает Spark. Если вы хотите внести свой вклад, проверьте страницу Github. Jodd — это набор утилит, фреймворков и инструментов, поэтому используемые им библиотеки являются собственными.
Вывод: Jodd — это коллекция очень сфокусированных и легких фреймворков и инструментов. Пользователи могут комбинировать эти библиотеки множеством способов, чтобы получить индивидуальные решения для своих нужд, которые по-прежнему предоставляют множество функциональных возможностей. Однако, разбивая каждый элемент на разные части, пользователь должен погрузиться и настроить все так, как ему нужно.
Вывод
Микро-фреймворки Java — это попытка устранить слабые стороны Java при сохранении ее сильных сторон. Их целенаправленный, простой подход позволяет очень легко развертывать приложения, помогая разработчикам сочетать мощь JVM с гибкостью новых, более быстрых языков.
Как более новая разработка, определение того, что считается микро-фреймворком Java, может быть вопросом мнения. В зависимости от того, как вы хотите определить термин, есть несколько других, которые вы можете включить и изучить, например, JHipster , Javalite , Ratpack и Vert.x. Если вы работали с микро-фреймворками в прошлом, пожалуйста, сообщите нам свое мнение о них в разделе комментариев ниже.
Ссылка: | Рамки Java Micro: новая тенденция, которую нельзя игнорировать от нашего партнера JCG Джоша Дрейфуса в блоге Takipi . |