Не мешайте фреймворки или на чём писать новую систему
Пишу вот систему. Перед проектированием встал вопрос:
1. На чём писать.
2. Какие средства использовать.
На чём писать – вопрос отпал. Использовать для такой системы PHP – это была бы ошибка. Получилось бы нечто не очень хорошо работающее. Поэтому я решил использовать Java. Да-да, чтобы всё было энтерпрайзненько, производительно и всё такое.
Далее. Поскольку изначально предполагалось использовать такие классные вещи как календари, слайдеры и прочие достаточно стандартные компоненты, то мой выбор пал на primefaces. Эта реализация JSF предлагает очень много стандартных компонент для быстрого создания web-интерфейсов. Для серверной части я хотел использовать Spring. Зачем? Ну вот просто хотелось. Мне казалось, что это будет круто.
В итоге я пришёл к тому, что чудесным образом, сессия, создаваемая в момент авторизации, на стороне Spring Security была в ApplicationScope. Каким бы образом я её не заставлял создаться в SessionScope. Я проклял всё. Мне пришлось за несколько дней переписать весь интерфейс с JSF на обычный HTML и JSP. За MVC, соответственно начал отвечать Spring Web MVC.
Теперь, если работать, то будет:
1. EJB + JSF.
2. Spring + JSP.
JSF очень медленный. Некоторые компоненты творят сущий ад. Если нет нервных пользователей, который будут кликать во все места и перегружать AJAX запросами бедный JSF, то можно его использовать.
JSP страницы очень шустрые, но для Spring’а придётся писать всё самому. Все AJAX-валидации и прочее.
EJB очень быстро стартует и “масштабируемость-из-коробки”. Spring имеет больше возможностей (которые и не всегда нужны).
В итоге у меня не получилось однозначного ответа, что всё-таки лучше использовать. Везде есть свои плюсы и минусы. Но одно я понял: лучше не мешать в одном месте JSF и Spring.
Последние комменатрии