×

Изучение Spring

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

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

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Какой модуль

Spring

вас интересует?

на данный момент, уже не актуально. спасибо :)

так что же выбрали?

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

Я даже не знаю используется ли ещё что-то из написанного.
Jsp устарела ещё когда я начинал учить джаву

Upd только увидел что тему воскресили из далёкого 2017. Упс

Upd только увидел что тему воскресили из далёкого 2017

Вся ця параша про яку пише Максим вже тоді була застаріла.

Можно начать с
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

это прям топчик!

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

Тоже только хочу начать учить Spring и с первых секунд ничего не понятно, о чем говорит Евгений Борисов.

Там весьма специфические курс. Но проще говоря :читайте доки, там все есть

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
про сервлеты желательно тоже почитать, чтоб иметь представление, даже, наверное, с них лучше начать

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

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