Обновить

Комментарии 12

Хороший пример.
Хинт. Геттеры и сеттеры можно сократить с помощью lombok.

Сколько можно одно и то-же ?

Сколько можно ныть, что повторы.

Обязательное требование для всех сущностей: приватные поля, геттеры и сеттеры для всех полей и пустой конструктор (в примерах не представлены). Их не нужно писать вручную, нажмите Alt+Insert и Idea сделает это за вас.

А еще лучше включить lombok и использовать анотации. Ей ей код более читаем чем это портянка с гетерами и сеттерами.


И… ИМХО уж слишком подробно расписано. С трудом продрался через пошаговое описание, хотя понимаю что это и зачем, и неоднократно пользовался.
Инструкция вида "потрясти бубном 3 раза, прыгнуть через костер 5 раз — пойдет дождь".
Ну и не считая, что это 100-я статья этого вида.


Почему все авторы описывающие Spring описывают его на этом уровне. На уровне "магии" В сущности в основе Spring то простые принципы лежат. И никакой магии.
Я имею в виду, что в статье написано "как сделать", но не "почему так сделать".


Без обид…

Про lombok согласен. Но не использовал его сознательно, поскольку предполагал, что статья будет интересна новичкам (собственно поэтому и примеры генерации кода через Idea добавил) и аннотации из Spring+lombok могут запутать.

На счет слишком подробного описания: сейчас я учусь и знакомые часто просили дать какой-нибудь источник с простым примером Security. Для тех, кто немного знает английский достаточно было бы 1-ой ссылки из источников. Но как оказалось не для всех этого достаточно. Поэтому я решил сделать подробный вариант на русском и ссылаться на него.
В общем согласен, что некоторые шаги описал слишком подробно и из-за этого получилось слишком растянуто.

Без обид, но это еще одна статья про Spring. При том, что еще и JSP еще использовалось в туториале, а не связка токенов. Я могу ошибаться конечно, но из современных решений, JSP уже не носят и давно.


Лучше бы про micronaut статей бы больше.

Хорошая статья для начинающих. Я бы предложил сделать стек более современным и удобным для такого проекта:
— in-memory БД (например, H2)
— Thymeleaf или что-то подобное вместо jsp. Можно пойти дальше и сделать сервис чисто REST API для отдельного фронта
— YAML вместо .properties для конфигурации
— как уже упоминалось, Lombok для геттеров, сеттеров и т. п.
— думаю, было бы интереснее реализовать подобный пример, используя WebFlux вместо Spring MVC

Так давно никто не пишет.
Зачем создавать проект через maven и вручную подключать зависимости если есть spring initializr?
JSP? Эту стюардессу давно закопали. Лучше покажите как проблему доступа решать в ангуляре.
Maven? Почему? От него начинает отказываться даже суровый Энтерпрайз.
В общем статья была бы ничего лет так 7 назад, но сейчас от неё нафталином попахивает

От мавена в ближайшее время никто не откажется. Строгая структура, стабильный апи, миллион плагинов, которые развиваются и поддерживаются — этих доводов достаточно чтобы как минимум не переводить свои проекты на градл. Да и новые не всегда есть смысл на нём начинать.
Что у мавена реально крутое — это release plugin. Градловые поделки мне меньше нравятся.
Но, в целом, за последние 3 года я не нашёл ни одной причины чтобы не начинать новый проект на gradle. Старые ладно, их реально иногда затратно перевести.

Зачем вторая таблица для ролей?

Статья годная для тех кто только осваивает. Молодец, что делишься своим видением.

В методе findUserById класса UserService вы возвращаете пустого пользователя, если пользователь в базе не найден. Имхо корректнее вернуть Optional - так в дальнейшей логике гораздо проще проверить что вернулось - .isPresent().

Метод usergtList в сервисном слое обходит DAO обращаясь напрямую в БД (через EntityManager). Это нарушает приципы SOLID. Метод нужно разделить на сервисную часть и репозиторную

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации