×Закрыть

Изучение Spring

Изучил Java Core на довольно неплохом уровне и хочу двигаться далее. Собственно вопрос с чего начать: Java Servlets или начать сразу изучение Spring? Посоветуйте пожалуйста что изучить и какие нибудь ресурсы по изучению той или иной технологии. Буду благодарен за ваши ответы.

P.S Знания английского средние, документацию на английском могу читать.

Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

После Java Core, просто must have прочитать oreilly head first «servlets and jsp».
В своё время пожалел, что пропустил эту книгу.
Там отлично рассказано про работу контейнера сервлетов(Томкат), сервлеты, jsp, фильтры, безопасность, ... .
Очень советую к прочтению!

Можно начать с
www.manning.com/...​-in-action-fourth-edition
Spring in Action, Fourth Edition
Covers Spring 4
Craig Walls
Легко читается. Примеры своеобразные, но для начала подойдет.

Потом продолжить
www.apress.com/us/book/9781430261513
Pro Spring
Authors: Ho
Одна из глав — Web Applications with Spring (создание полноценного веб приложения)

Если понравится веб, можно почитать о REST
www.apress.com/us/book/9781484208243
Spring REST
Authors: Varanasi, Balaji
Вся книга — создание REST сервиса.

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

спасибо

Евгений Борисов Spring-потрошитель www.youtube.com/...​zinGVbjwJ3kp_PtqD&index=1

Що ви людину зразу в дебрі заганяєте ? :)

Java Servlets или начать сразу изучение Spring?

Servlets (чисто почитать спеки, понять принцип, просто запилить что-то HelloWorld-ное), затем Spring

...и сразу 5-й, и параллельно Spring Boot. пока нормально раскурите, он (сам фреймверк плюс реактор) вполне имеет все шансы стать мэйнстримным для новых проектов, которые ещё кто-то плит на спринге.

Spring сейчас используется чуть менее чем всюду

здесь не согласен чуть более, чем полностью, сразу оговорюсь, я не из набегающих GO-сектанов, а просто выражаю озабоченность в DOUшке по поводу трэндов (ибо Spring — наше все), но это к сожалению, именно так.
Разумеется, если рассматривать чисто Java энтерпрайс, то мэй би, Spring чётка TOP-3, но всё же.

В общем, Spring будущего, имхо: реактивные сервлеты (>4.х), реактор, Boot, я ясен — Java 8, а посему, начинаем въезд в сабж примерно в следующем порядке:

1. Spring Boot — просто генератор. включаем чекбокс «Reactive Web» и дальше двигаемся только в этом направлении
2. сморим бложек с первым эннаунсментом
3. projectreactor.io/docs — просто читаем весь Reactor Core (это типа более правильная RxJava и от тех же посонов, но более академически навороченная)
4. Spring Boot
5. Spring
6. И для быстрого въезда ихний канал (кстати, по 5-му спрингу на трубе реально мало нормальных видео и презентух — в том смысле, что английский с индусским акцентом мной всегда воспринимался как «чистейший адский»)

а вот на весь олдскульный Spring рекомендую забить, если только нет в планах заниматься чисто лэджеси-саппортом.

Разумеется, подразумевал именно java enterprise world =)

P.S. Спасибо, кстати, обнаружил пару интересных и для себя ссылок.

Spring сейчас используется чуть менее чем всюду. И изучать его можно без всякой дополнительной подготовки, зная Java Core. Но вот для понимания SpringMVC/Boot обязательно нужно для начала получить понимание того, что такое сервлеты (углубляться, впрочем, смысла нет — в чистом виде они практически не используются).

Я бы рекомендовал такую последовательность: Spring (DI/IOC) => сервлеты => Spring MVC/Boot.

Последовательность пунктов 1 и 2 менять можно. 3 крайне не рекомендую начинать без понимания 1 и 2.

Рекомендаций по ресурсам — куча, даже на dou есть годный цикл статей Стаса Ложенко, например. Что же касается моих предпочтений — то по Спрингу начать рекомендую с этого цикла коротких туториалов www.youtube.com/...​t?list=PLC97BDEFDCDD169D7, всё разжевывается буквально на пальцах. По сервлетам — с головой хватит Head first servlets and jsp от O’Reyly. По mvc/boot ничего лучше официальных туториалов (spring.io/guides), на мой взгляд, нет. Если хочется увидеть живой работающий пример — гугли «Spring Pet Clinic». С русскоязычными ресурсами — задача посложнее, тут по заданным темам порекомендовал бы разве что цикл лекций Юрия Ткача (если покороче) или Ивана Головача (если подробнее).

Как-то так.

спасибо за совет. у меня на курсах про сервлеты должны рассказать для понимания и должны на них написать в конце курса проект,так что с этим проблем не будет. Можно подробнее про

Spring (DI/IOC)

а то я про это вообще ничего не слышал:(

martinfowler.com/articles/injection.html Пожалуй, наиболее подробно :-) Это теория, а Spring предоставляет, в числе прочего, наиболее распространенную реализацию этого паттерна.

P.S. Статья была написана еще тогда, когда Spring только набирал популярность, это нужно учитывать.

И то и другое. Практически все примеры, что вы встретите для Spring, работают на сервлетах.
Начать с сервлетов. Сильно углубляться не стоит, просто понимать саму технологию — что это такое и как работает. И главный факт: сервлет не является кодом на Java, и соответственно не находит отражения в классах java. Он — сам по себе, и он КОМПИЛИРУЕТСЯ в Java-код, и уже потом скопилированный код становится Java-классом.

Это важно при отладке. Java-код отладить просто, а вот с сервлетом придётся поиграться. Аналогично со Спрингом: то что есть код на Спринге — не является Java-классом. Java-классы генерируются динамически, и «сплетаются» по факту материализации зависимостей. Соответственно то что выдаёт стэк-трэйс отладки — будет ссылаться на само уже сплетение и ошибки, генерируемые фреймворком.

Мой совет — брать готовый проект, возможно учебный. И пробовать менять уже существующие процессы, чем писать «с нуля». Почему так: на реальном проекте видно, что используется всегда и постоянно (то есть надо учить), а что второстепенный хлам (учить не надо, надо держать под руками документацию). Соотношение будет примерно 4%/96% после двух лет опыта. Соответственно, вам нужно не утонуть в этих 96% как новичку, именно для этой цели нужно начинать с готового продукта.

спасибо)

Мой совет — брать готовый проект, возможно учебный. И пробовать менять уже существующие процессы, чем писать «с нуля».

Я так пробовал, тонул в массе непонятных вещей. В итоге для меня был более оптимальный путь — spring ioc, для общего понимания базы spring, потом spring data, потом spring mvc, без привязки к db, потом spring security без привязки к spring data, и под конец на учебном проекте связал в кучу и добавил validator.

Пробовал полностью готовый проект менять, сильно терялся в мелочах.

Сколько времени потратил на готовый? Час максимум, небось. А на «оптимальный путь» — пару годочков, пока освоил?
Это нормально, что терялся в мелочах. Задача именно в том, чтобы ВИДЕТЬ того самого «дьявола в деталях», и уметь прослеживать единичный поток в хламе когда. В чём IDE помогает.

Никто ж не говорит, что увидев привязку к db надо сразу лезть её менять. Просто заметить где она, и через какую задницу летят эти данные, чтобы в итоге оказаться на блюдечке (скажем у тест-юнита).

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

У готового есть Ctrl-Z. У неготового — только телепатия.

начните с этого
docs.spring.io/...​ent/reference/htmlsingle
а потом уже можно пройтись по spring.io/guides
про сервлеты желательно тоже почитать, чтоб иметь представление, даже, наверное, с них лучше начать

спасибо за ответ)

спасибо

Подписаться на комментарии