Spring Framework - очень востребованный и популярный инструмент, который используется для бэкенд разработки в компаниях по всему миру. Spring - самый популярный Java фреймворк и в большинстве вакансий для Java разработчиков будет значится именно эта технология. Популярность Spring обусловлена большой имеющейся кодовой базой, огромным количеством библиотек, развитым сообществом разработчиков, хорошей производительностью и тем, что Spring показал себя как удобная и рабочая технология для создания сложных бэкендов - опыт Amazon, Google, Яндекс, Тинькофф и множества других крупных компаний это подтверждает.
Вы изучите
Spring Core
Spring MVC
Базы Данных и JDBC API
Hibernate и JPA
Spring Boot
Spring Security
Spring REST
JWT-аутентификация
Посмотреть больше
Это пробный урок. Оформите подписку, чтобы получить доступ ко всем материалам курса. Премиум
Ограничение времени просмотра
Вы можете просматривать пробный урок только 10 минут. Получите полный доступ, чтобы смотреть без ограничений.
6. Отношение Один ко Многим (One-to-Many) в Hibernate
Урок 50.
00:07:54
7. Жизненный цикл сущности в Hibernate
Урок 51.
00:18:40
8. Каскадирование в Hibernate
Урок 52.
00:21:53
9. Отношение Один к Одному (One-to-One) в Hibernate
Урок 53.
00:23:17
10. Отношение Многие ко Многим (Many-to-Many) в Hibernate
Урок 54.
00:32:51
11. Ленивая загрузка
Урок 55.
00:18:14
12. Spring приложение с Hibernate
Урок 56.
00:07:01
14. CRUD приложение с Hybernate
Урок 57.
00:30:29
1. Spring Data JPA
Урок 58.
00:26:14
2. Кастомные запросы в Spring Data JPA
Урок 59.
00:10:07
63 Дата и время в Hibernate
Урок 60.
00:06:31
64 Перечисления (Enum) в Hibernate
Урок 61.
00:17:53
65 Проблема N + 1
Урок 62.
00:06:50
66 Методы get() и load()
Урок 63.
00:24:23
Проект 2. Решение._2
Урок 64.
00:10:45
71 Введение в Spring Boot
Урок 65.
00:18:42
72 Первое Spring Boot приложение
Урок 66.
00:04:41
73 Консольный запуск Spring Boot приложения
Урок 67.
00:08:22
74 Более сложное приложение на Spring Boot
Урок 68.
00:17:09
75 Введение в Spring Security
Урок 69.
00:29:25
76 [НЕОБЯЗАТЕЛЬНЫЙ УРОК] Сессии
Урок 70.
00:20:47
77 [НЕОБЯЗАТЕЛЬНЫЙ УРОК] Cookies
Урок 71.
00:06:35
78 Первое приложение с использованием Spring Security
Урок 72.
00:36:33
79 Аутентификация в Spring Security
Урок 73.
00:15:56
80 Аутентификация II (UserDetailsService)
Урок 74.
00:18:18
81 Кастомная страница авторизации
Урок 75.
00:14:36
82 Процесс регистрации в Spring Security
Урок 76.
00:02:43
83 Процесс разлогинивания (logout)
Урок 77.
00:17:29
84 Шифрование
Урок 78.
00:17:53
85 CSRF
Урок 79.
00:19:16
86 Авторизация в Spring Security
Урок 80.
00:06:09
87 Аннотация @PreAuthorize
Урок 81.
00:08:30
88 Введение в Spring REST
Урок 82.
00:04:15
89 Jackson
Урок 83.
00:28:32
90 REST API Клиент
Урок 84.
00:16:52
91 Первое Spring REST приложение
Урок 85.
00:12:00
92 Обработка ошибок в REST API. Аннотация @ExceptionHandler
Урок 86.
00:22:15
93 Прием данных. Аннотация @RequestBody
Урок 87.
00:30:59
94 DTO
Урок 88.
00:35:53
Проект 3. Решение.
Урок 89.
01:05:09
JWT
Автор - Наиль Алишев
Наиль Алишев
Привет! Меня зовут Наиль. Я занимаюсь программированием с 17 лет и не собираюсь прекращать это дело. Для меня программирование - это полезный навык и захватывающее занятие. В свободное время я люблю путешествовать, играть на гитаре и фортепиано. Я уверен, что у меня получится донести материал таким образом, что обучение будет проходить просто, весело и интересно. Давайте вместе пройдем путь от новичков до профессионалов, присоединяйтесь!
это не swiftbook это Наиль Алишев https://coursehunter.net/source/nail-alishev
Anonymous
почему на маке не открываются видео с этого сайта?
legendsofsdu
very good!!!
hazartilirot
Да уж ребята, 89 урок весёлый) Особенно весело, когда ты идёшь "своей" дорогой) Я уже на 44 минуте, разбираюсь с эксепшенами, нагуглил свою проблему, оказывается)
https://stackoverflow.com/questions/55619497/cannot-inject-property-value-to-class-parameter-value-annotatnion
Долго не мог понять, почему у меня не инджектиться значение в переменную. Я генерирую токен в сервисе, пришлось в поле подвязывать как стековерфлоу посоветовал) Во как надо набивать скилл) Йопта)
Akbario
hazartilirot
у него довольно слабое объяснение jwt, я бы сказал любой англоязычный видос будет на пару голов выше, как то видно что он просто чтоб было в курсе записал его
hazartilirot
89 урок - ничего опять не понимаю. Мы же уже создавали PersonDto? ШО ОПЯТЬ?
hazartilirot
Ничего я так и не понял до конца. Зачем возиться с маппером в контроллере? Контроллер, по сути, это типа маршрутизатора. То есть, оставляем в нём абсолютно так как было раньше, только меняем Person -> PersonDTO, создаёт новый модуль Mapper и уже там создаём перегруженный метод mapPerson - в обе стороны, там же сохраняем и там же выдаём полный список через Ламду.
Чё-то Наиль устал под конец....
hazartilirot
Урааааа! Он знает про маппер)))))))
hazartilirot
87 урок - это ппц. Сам говорит, что логика не должна быть и оставляет логику для PersonDto, зачем? Передай в качестве аргумента его и уже в сервисе полностью создай новый объект. Часть оставил в одном методе, часть в другом... Ужас))))))
hazartilirot
Да уж, поля Дейт приходят в виде интеджера, а, вот, явные Энум (роли) сделали стрингом)))) И куда он спешит?
hazartilirot
Lesson 78 Делали на логин токен, а проверяем форму для регистрации.
hazartilirot
Ага, синьоры, у девицы там свои имена в таблице персон) Будьте внимательны, иначе выпадете в ошибку, надо поменять
name -> full_name,
year -> year_of_birth
От же блин, пришлось искать по всему интернету. Базу данный уже сами скриейтите))))
CREATE TABLE person (
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name VARCHAR(250) UNIQUE,
year INT NOT NULL CHECK ( year > 1900 AND year 1445 AND year
hazartilirot
63, 67 Lesson: удивляюсь человеку. Я не совсем понял где домашнее задание (на Юдеми?). Второй момент, нафига было выносить это из репозитория про спринг - в котором чёрт ногу сломит?
Я промолчу, что всё копируется туда-сюда, но эс-кью-эль запросы можно было сделать до конца? Почему-то про taken_at забыл.
hazartilirot
Lesson 45, чёртовый мавен! В общем, когда создадите проект, есть такая фича, зайдите сразу в pom.xml и таге properties вставьте вот эти две строчки
https://stackoverflow.com/a/36116666/1521866
только версию измените на ту, которую используете. Обновите мавен. Сходите в настройки проекта, в модулях, Language level должна стоять та версия, которую вы установили. Иначе, вас будет выбрасывать на низкую версию джавы. Меня бросало на 5. Например,
когда вы пишите new Cofiguration(); и нажимаете на OPTION + CMD + V чтобы автоматом вставить переменную с var - у вас не получится из-за низкой версии. И куча головняка.... будете мучится и не понимать чё за нах.)
hazartilirot
Lesson 45 - 12:20, у меня видит, просто, нужно было подвязать к базе данных. Всё чётко работает.)
hazartilirot
Lesson 41, хосспади, ну, как так? Он учит меня джаве при этом не знает элементарных HotKey, да нажми ты, сцуко, на CTRL + CMD + G, вот, же.... блин. И самое удивительное, зачем микрофон ставить на стол и "снимать" звук с того как ты долбишь по кнопкам?
DMDEV, конечно, на порядок лучше вашего Наиля,
reerr4606
hazartilirot
Может потому, чтобы новичкам показать, а не бездумно тыкать хоткеи, чтобы новичок пялился в экран, не понимая, как это произошло?
hazartilirot
reerr4606
Какая связь? Иди сходи к Денису Матвеенко (DMDev) он тоже для новичков показывает код и вместе с этим, это делает код чище и приятнее. Спрашивается, зачем тебе Intellij IDEA, если ты не умеешь ей пользоваться? Набирай в блокноте и бей по кнопкам.
Да и Spring - это не для новичков) Перед ним нужно посмотреть ещё кучу всего.
reerr4606
hazartilirot
Согласен, частично...)
hazartilirot
Lesson 28, Почему постоянно говорят, что переменные хранятся в каком-то там файле настройках? Значения скоре всего инджектятся через environment variables.
hazartilirot
В общем, ребята, жаль, что сайт убрал теги, но это не важно, я отдельно поделился кодом вот здесь
Ой, ребята, что я хочу сказать, там где 17 урок (где начинается уже томкэт), изменяйте сразу дэпенденси, мне лично не удалось запустить в новой Айдеи с новым томкэтом его код :( Я полностью пересобирал его проект с ноля и только после этого у меня заработало. Не знаю, помогут ли тут депэндэнси, я надеюсь: откройте помовский файл, поменяйте весь список и обновите мавэн, чтобы он подтянул и обновил все зависимости.
И ещё одно, th:text - thymeleaf он будет использовать, не нужно в html таг ничего пихать, и использовать правильно через data-th-text - об этом сказано в документации. Иначе, это будет html5-unfriendly.
удачи) Я запустился 2022.3.3 Intellij IDEA и 10.1.7 Tomcat
Да ничего в нём нет кульного. Скудный на словарный запас. "Давайте" - его прозвище)))))
ivan.gyulumyan
скорость для за загрузки слишком маленькая (30 кб сек), исправьте
BiloBaut
12-й и 11-й уроки тоже перепутаны
the10or
15-й и 16-й уроки перепутаны
Somebody
Ребят, исправьте имя автора, пожалуйста... Это Наиль Алишев. Так народ быстрее поймет что к чему... ))
mehanik
Somebody
да, это он
Команда внимательно читает ваши комментарии и оперативно на них реагирует. Вы можете спокойно оставлять запросы на обновления или задавать любые вопросы о курсе здесь.
Spring - это самый распространенный фреймворк для написания Java приложений. Первая версия вышла еще в далеком 2003 году, после чего Spring претерпел очень много изменений и стал по-настоящему монструозным. Это повлекло разбиение его на множество отдельных модулей, которые будут разобраны в курсе:
Spring Security – это Java фреймворк, спроектированный для решения вопросов безопасности приложений: авторизация, аутентификация, защита от различного рода атак и др.
Надоело пытаться выучить Spring по нескольким источникам? Тогда этот курс точно для Вас! Привет, друзья! Меня зовут Заур Трегулов, и я являюсь автором данного курса. Если вы просматриваете данное обращение, то Вы, скорее всего уже в курсе, что Spring является самым модным, распространённым и востребованным фреймворком языка программирования Java. В наши дни, огромным плюсом Java программиста является знание Spring. И всё больше и больше работодат
Узнайте, как использовать Spring Security для защиты ваших приложений Spring Framework. Кажется, что каждый день можно найти новости о взломе системы безопасности, который может иметь разрушительные последствия для компаний.
Микросервисы в Spring под капотом c использованием Domain Driven Design
Spring MicroServices In Depth using Domain Driven Design
Внедряйте микросервисы, используя DDD, шаг за шагом. Поймите, как реализовать микросервисы. Сначала мы реализуем сценарий использования с подходом Domain Driven Design. Затем, с облачными модулями Spring, шаг за шагом с одним и тем же вариантом использования и, наконец, разработаем полный вариант использования.
https://stackoverflow.com/questions/55619497/cannot-inject-property-value-to-class-parameter-value-annotatnion
Долго не мог понять, почему у меня не инджектиться значение в переменную. Я генерирую токен в сервисе, пришлось в поле подвязывать как стековерфлоу посоветовал) Во как надо набивать скилл) Йопта)
Чё-то Наиль устал под конец....
name -> full_name,
year -> year_of_birth
В общем, код для 67 или 63 урока
https://github.com/AlesiaSherstneva/spring-project/blob/master/project2/src/main/sql/library.sql
спасибо красавице))))))
CREATE TABLE person (
id INT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
name VARCHAR(250) UNIQUE,
year INT NOT NULL CHECK ( year > 1900 AND year 1445 AND year
Я промолчу, что всё копируется туда-сюда, но эс-кью-эль запросы можно было сделать до конца? Почему-то про taken_at забыл.
https://stackoverflow.com/a/36116666/1521866
только версию измените на ту, которую используете. Обновите мавен. Сходите в настройки проекта, в модулях, Language level должна стоять та версия, которую вы установили. Иначе, вас будет выбрасывать на низкую версию джавы. Меня бросало на 5. Например,
когда вы пишите new Cofiguration(); и нажимаете на OPTION + CMD + V чтобы автоматом вставить переменную с var - у вас не получится из-за низкой версии. И куча головняка.... будете мучится и не понимать чё за нах.)
DMDEV, конечно, на порядок лучше вашего Наиля,
Да и Spring - это не для новичков) Перед ним нужно посмотреть ещё кучу всего.
https://gist.github.com/NeilAlishev/2f7a876867a0a8516908f96ea14521e9
Тот фильтр всё равно пригодится вам.)
И ещё одно, th:text - thymeleaf он будет использовать, не нужно в html таг ничего пихать, и использовать правильно через data-th-text - об этом сказано в документации. Иначе, это будет html5-unfriendly.
удачи) Я запустился 2022.3.3 Intellij IDEA и 10.1.7 Tomcat
UTF-8
1.7
1.7
6.0.6
junit
junit
4.13.1
test
org.springframework
spring-core
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.thymeleaf
thymeleaf-spring6
3.1.1.RELEASE
jakarta.servlet
jakarta.servlet-api
6.0.0
provided
org.projectlombok
lombok
1.18.26
provided