1.На първо място за мен е Vraptor: www.vraptor.org
Ви раптър e фреймуърк с отворен код с голям брой разработчици и юзъри. Той е простичък и бързо за схращане, като в същото време разполага с голям набор от функции.
Плюсове:
Vraptor притежава много добър и лесен за употреба Java EE 7 CDI (Context Dependency Injection);
SOA and Rest – Ready;
Много добра документация на английски и португалски език;
Минуси:
На места може да е сложен за използване, понеже иска добри познания на CSS, HTML and JavaScript;
Липса на добър съпорт и помощ;
Все още малко хора го използват в сравнение с другите framwork-ове.
2. На второ място слагам Spring framework-а: https://spring.io/
Спринг ти предоставя обширен и подробен модел за твоите начинания с Java на всякакви платформи, свързани с програмиране и конфигуриране на приложения. Ключов елемент на Спринг е инфраструктурния съпорт на самите приложения. Спринг се фокусира върху бизнес логиката на ниво приложение, като така спестява на разработчиците занимаването им допълнително с различните среди за deployment.
Плюсове:
Огромно community, голям набор на плъгини и наличието на нужното ниво на сигурност и защита (security).
Аспектно- ориентирано програмиране, включващо свой мениджмънт по деклариране на транзакции.
Фундаментална поддръжка на JDBC (Java Database Connectivity), JPA (Java Persistence API) и JMS (Java Message Service), и не на последно място Dependency Injection.
Минуси:
Спринг си има и своите лимити и някои неща могат да бъдат много трудни за намиране;
Понеже е голям фреймуърка, е и сравнително бавен спрямо другите.
3.На трето място идва Grails framework: grails.org
Грейлс е много добър уеб фреймуърк за Java, чиято цел е да увеличи продуктивността на разработчиците многократно благодарение на „Конвенцията преди Конфигурацията“ и на практичните и чувствителни настройки на приложно-програмния интерфейс. Интегрира се перфектно с виртуалната машина на Java - JVM като ти предоставя много разнообразни фийчъри като интегрирания обектен и релационен мапинг ORM (Object/relational mapping), домейн-специфични езици, рънтайм и compile тайм метапрограмиране и Asynchronous програмиране.
Плюсове:
Grails предлага добра подредба на нещата; включва не само контролер за моделен изглед, иначе наречен MVC (model-viewer-controller) , ORM, GSP технология (Groovy Server Pages) и build система. Можеш също така да ползваш предния си java код на уеб проектите си и дори и да решиш да кодираш с Groovy, пак ще можеш да ползваш java библиотеките в проекта си. И не на последно място – много добър съпорт в самите IDE-та ( интегрираните среди за работа) и текстови редактори (text editors), като например IntelliJ IDEA, Eclipse, Sublime, Textmate и т.н.
Минуси:
Вероятни проблеми с някои plugin-и и конфигурации, които могат да отнемат часове, за да се оправят, което би било проблем ако се появят преди някакъв deadline (краен срок).
Лесно се научава, но трудно можеш да вникнеш в дълбочина и да ползваш по-интересните и улисняващи работата плъгини.
4.На Четвърто място е Spark.
Сайт: http://sparkjava.com/
Спарк е простичък и лесен за употреба фреймуърк за уеб на Джава, разработен специално за бързи deployment-и. Първоначално е бил направен по Sinatra ( друг framework), но целта му не е да се съревновава с него или с други подобни фреймуъркове, а да предостави една чиста алтернатива на уеб девелъпърите, които искат да си разработват своите уеб приложения на Java. Spark ползва ламбда философията на Java 8 като това го прави по-малко празнословен.
Плюсове:
Лесен за употреба и директен към проблемите framework, сравнително гъвкав;
Премахва нуждата от тромави конфигурации като XML;
Добра интеграция с Groovy и Kotlin.
Минуси:
Route handling-а куца на места и може да поради малко ядове, които обаче лесно се оправят;
Понякога администатора не отговаря на въпросите и сякаш съпорта го няма от време на време.
5. Play https://www.playframework.com/
Плей е фреймуърк, която прави лесно build-ването на уеб приложения с Java & Scala.
Базиран на web-friendly архитектура, той е лек и лесен за употреба. Направен е така, че да има минималнo потребление на CPU, RAM и thread-ове.
Плюсове:
Перфектен за мобилни устройства – RESTful е по default;
Притежава asset компилатор за CoffeeScript, LESS и др.;
Websockets,Comet,EventSource;
Съпортва BigData;
Build-ваш на Аkka.
Минуси:
Dependency resolution-а е бавен;
Scala/sb може понякога могат да са бавни;
Липса на някой фийчъри спрямо Spring.
Като цяло минусите са в бързината на плъгина, въпреки горепосочените минимални потребления на ресурси.
6. Apache Wicket https://wicket.apache.org/
Апачи Уикет, измислен през 2004 г. , е един от малкото оцелели във времето фреймуъркове. Той е open-source , component oriented, serverside Java web фреймуърк. С история повече от едно десетилетие, той продължава да се развива и да бъде от водещите в бранша.
Плюсове:
Предлага писане на чист Java i HTML код;
Отворен код е и има много голям съпорт, което го прави търсен от разработчици;
Поддържа Multitask-ването много добре - с multi-tab & multi- windows;
Притежава WicketTester, което позволява на QA екипите да си извършват нужното тестване и това е един от най-големите плюсове на този фреймуърк според мен.
Много добра сигурност и защита;
Интеграция на Java EE, AJAX компоненти и има Injection support.
Минуси:
Сравнително по-труден за научаване и за употреба фреймуърк.
Големият набор от фийчъри предразполога към сложност на моменти и би бил сложен за повечето начинаещи.
Пораждане на празнословни редове и четливи, но бая дълги кодове, което не е много приятно.
Липсата на експерт в маркетинга във framework-а може да накара хората, занимаващи се в нея област да не го ползват.