LINUX.ORG.RU

Правильно ли хотеть Jetty/Tomcat embedded + Spring MVC + Spring Security?

 , , ,


2

1

Добрый день. По роду работы приходилось писать на JavaSE, Netty, Apache HttpComponents, JayBird и все такое.

Теперь понадобилось написать веб-интерфейс для управления личным кабинетом пользователей (чтобы пользователи могли менять там свои персональные настройки и прочее) с вроде бы обычными требованиями:

  • авторизация (логин/пароль);
  • аутентификация (проверка доступа к разным URL);
  • поддержкой сессий (с куками и без них автоматически);
  • по возможности все завернуть в jar, т.к. у нас пока все проекты так написаны и запускаются скриптами на CentOS;
  • вероятнее всего, со временем увеличится объем задач этой проги, добавятся графики, подгрузка данных в реалтайме (что там щас используют для этого? Ajax, Websocket ... );

Предварительно решил использовать для решения задачи:

  • Jetty/Tomcat embedded (непонятно, какой лучше/проще прикрутить)
  • Spring MVC + Spring Security

Только вот в Spring ничего почти не понимаю еще...

Вопросы:

  • А может ну его, этот Spring? Забахать все на HttpComponents HttpCore, допилить туда сессии и авторизацию...
  • Правильно ли пытаться убрать все XML-конфиги и заменить их Java-конфигами в случае со Spring?
  • Пока страницы будут простыми: подобие CRUD + немного CSS для красоты, но со временем может понадобиться более навороченное содержимое, типа графиков, мониторинга в реалтайме за жизнью сервиса.
  • Если Spring и правда хорош и стоит озаботиться его изучением - то с чего начать, чтобы побыстрее добраться до MVC+Security?

Здесь Spring подходит по каждому пункту. Даже по этому:

по возможности все завернуть в jar

тут смотри Spring Boot

Jetty/Tomcat

А какая принципиальная разница? Ты на нем максимум будешь настраивать ресурсы наверняка, или я не прав? Спрингу здесь совершенно не принципиально на чем крутиться, даже Boot умеет и в Jetty и в Tomcat.

убрать все XML-конфиги и заменить их Java-конфигами в случае со Spring?

И снова, не принципиально, но properties-файлы - это более родное решение. Спринг и их умеет очень удобно читать.

По поводу того, как добраться - открывай офф документацию, подробно кури spring-core, уже потом смотри Security, Spring MVC, Spring data и так далее.

bytecode ★★ ()
Последнее исправление: bytecode (всего исправлений: 2)
Ответ на: комментарий от bytecode

Опасаюсь использовать Boot

Что-то опасаюсь использовать Boot, т.к. хочется разобраться получше в Спринге, без использования быстро-комбайнов. Да и читал много нелестных отзывов про Boot. Посоветовали на киберфоруме почитать Spring in action 4 edition, скачал, читаю раздел Security. И правда, пока все понятно... Но вы правы, надо начать с Core.

lanmaster2 ()
Ответ на: Опасаюсь использовать Boot от lanmaster2

Книга хорошая, но я бы всё-таки посоветовал курить официальные доки:
1. Обязательно к прочтению (core-часть, AOP, в вашем случае и MVC - как минимум)
2. Полный гайд по Security
3. В третью очередь Spring data, integration, etc.
Boot хорош, если нужно быстро запилить какой-то standalone сервис/накидать эмулятор/etc. Для прода - вопрос спорный.

bytecode ★★ ()
Последнее исправление: bytecode (всего исправлений: 1)
Ответ на: Опасаюсь использовать Boot от lanmaster2

Выше в треде отвечал по конфигам - видимо не понял вопроса. Конфигурация спринга - это одно, «бизнесовые» настройки - другое. Я говорил про второе. Для конфигурации контейнера/контекста - java-based/xml-based/groovy + annotation based конфигурация. Тут уж что ближе. У XML есть свои плюсы, но и свои минусы. Ни разу ещё не видел вживую конфигурацию на groovy.

Кастуй по вопросам stevejobs, Legioner, наверное не будут против. Ну а лучше кури документацию до просветления.

bytecode ★★ ()
Последнее исправление: bytecode (всего исправлений: 1)

Любая PHP мартышка сделает это быстрее на порядок. К вопросу об инструментах.

anonymous ()
Ответ на: комментарий от bytecode

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

Для конфигурации Spring хочется использовать Java-based конфиги, хотя может оказаться, что некоторые вещи XML-я ничем не заменить. Но это я по дилетантски сейчас написал. Видно будет. Кастовать неудобно как-то пока, надо пытаться разбираться самому. Лучше курить мануал.

lanmaster2 ()
Ответ на: комментарий от anonymous

Дак это понятно. На PHP-то я бы быстро все слепил на YII, но весь этот зоопарк из Apache/Nginx/Mysql/PHP/ с их конфигами не очень радует... В том числе и поэтому не хочется связываться с полнофункциональными установками Tomcat/Jetty, а заменить их embedded-версиями...

lanmaster2 ()
Ответ на: комментарий от bytecode

Boot хорош, если нужно быстро запилить какой-то standalone сервис/накидать эмулятор/etc. Для прода - вопрос спорный.

Почему? Чем он плох для прода?

php-coder ★★★★★ ()
Ответ на: комментарий от php-coder

Я не говорю, что он плох. Если есть обоснование и ограничения не мешают, то почему нет.

bytecode ★★ ()

Правильно ли хотеть

Еще спроси «не вредно ли это» или «я случайно jetty/Tomcat embedded + Spring MVC + Spring Security, это не опасно?» @ Попробуй похотеть LAMP, сравни ощущения...

slackwarrior ★★★★★ ()
Ответ на: комментарий от slackwarrior

Да уж, бываю косноязычен... С живыми людьми мало общаюсь, надо бы почаще... LAMP уже давно отхотел 8)

lanmaster2 ()

Обнаружил, что в связке с Jetty embedded не поднимается секьюрный контекст. Или что-то в этом роде... На stackoverflow нашел пилюлю для это ситуации, применил. Работает, копаю дальше, прикручиваю logback. Если кому-то нужны исходники - пишите, поделюсь...

lanmaster2 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.