
В проекте версия Spring Boot 2.4. Можно брать последнюю версию
mvn spring-boot:run
git clone https://github.com/JavaOPs/bootjava.git
cd bootjava
git remote add [REMOTE_ALIAS] [url_на_свой_репозиторий.git] # добавить [REMOTE_ALIAS] на свой github
git remote -v # посмотреть текущие настройки
git push -u [REMOTE_ALIAS] master # push + сделать [REMOTE_ALIAS] удаленным репозиторием по умолчанию
Готовый проект с патчами находится в ветке patched: git clone --branch patched https://github.com/JavaOPs/bootjava.git
H2 Консоль: http://localhost:8080/h2-console
# ImMemory
url: jdbc:h2:mem:voting
tcp: jdbc:h2:tcp://localhost:9092/mem:voting
# Absolute path
url: jdbc:h2:C:/projects/bootjava/restorant-voting/db/voting
tcp: jdbc:h2:tcp://localhost:9092/C:/projects/bootjava/restorant-voting/db/voting
# Relative path form current dir
url: jdbc:h2:./db/voting
# Relative path from home
url: jdbc:h2:~/voting
tcp: jdbc:h2:tcp://localhost:9092/~/voting
GET http://localhost:8080/api
GET http://localhost:8080/api/users
GET http://localhost:8080/api/users/1
GET http://localhost:8080/api/users/search
GET http://localhost:8080/api/users/search/by-email?email=User@gmail.com
GET http://localhost:8080/api/users/search/by-lastname?lastName=Admin
GET http://localhost:8080/api/users/search/by-lastname?lastName=last
POST http://localhost:8080/api/users
Content-Type: application/json
{
"email": "test@test.com",
"firstName": "Test",
"lastName": "Test",
"password": "test",
"roles": [ "ROLE_USER"]
}
###
PATCH http://localhost:8080/api/users/1
Content-Type: application/json
{
"lastName": "User+Last"
}
JSON Formatter: chrome://extensions/?id=bcjindcccaagfpapjjmafapmmgkkhgoa
GET http://localhost:8080/api/account
GET http://localhost:8080/login
GET http://localhost:8080/logout
GET http://localhost:8080/api/account
GET http://localhost:8080/api/users
GET http://localhost:8080/api/account
GET http://localhost:8080/api/users
curl -s http://localhost:8080/api/account --user user@gmail.com:password
POST http://localhost:8080/api/users
Content-Type: application/json
Authorization: Basic admin@javaops.ru admin
{
"email": "test@test.com",
"firstName": "Test",
"lastName": "Test",
"password": "test",
"roles": [ "USER","ADMIN"]
}
PUT http://localhost:8080/api/account
Content-Type: application/json
Authorization: Basic user@gmail.com password
{
"email": "user@gmail.com",
"firstName": "New_First",
"lastName": "New_Last"
}
###
GET http://localhost:8080/api/account
Authorization: Basic user@gmail.com password
###
POST http://localhost:8080/api/account/register
Content-Type: application/json
{
"email": "test@test.com",
"firstName": "Test",
"lastName": "Test",
"password": "test"
}
###
GET http://localhost:8080/api/account
Authorization: Basic test@test.com test
PUT http://localhost:8080/api/account
Content-Type: application/json
Authorization: Basic user@gmail.com password
{
"id": 7,
"email": "user@gmail.com",
"firstName": "New_First",
"lastName": "New_Last"
}
###
GET http://localhost:8080/api
GET http://localhost:8080/api/account
GET http://localhost:8080/api/account/pageDemo
Дополнительные занятия:
Урок 6: https://javaops.ru/view/bootjava/lesson06
6.1 Документирование REST API: Swagger / OpenAPI 3.0
6.2 Тестирование
6.3 Кэширование
Урок 7: https://javaops.ru/view/bootjava/lesson07
7.1 Обновление и рефакторинг
7.2 Защита от XSS (Cross Site Scripting)
7.3 Удаление Spring Data Rest (опционально)
Разработка с нуля Java приложения на самом современном и востребованном стеке: Spring Boot 2.6, Spring Data Rest/HATEOAS, Lombok, JPA, H2, ....
Мы создадим с нуля основу любого современного REST веб-приложения: аутентификация и авторизация на основе ролей, регистрация пользователя в приложении, управление своим профилем и администрирование пользователей
Для кого:
Для тех, кто еще не работал со Spring/ Hibernate/ JPA и хотел бы получить первый опыт
Для разработчиков, готовый углубится в детали Spring Boot
Для опытных разработчиков, которым интересен код проекта и детали реализации.
Для прохождения достаточно некоторого опыта программирования на Java. Желательно опыт с Ultimate IDEA и знание азов Git.
Курс НЕ научит вас программировать.
Он даст почувствовать вкус современной Java разработки, "аванс", который затем нужно будет отрабатывать, обучаясь самостоятельно решать типичные задачи Java разработчика, читать логи, дебажить, искать решения и выбирать из них лучшее. И, конечно же, кодировать. Красиво, чисто и правильно, без больших ляпов по незнанию или невниманию.
Т.е. участие в больших Enterprise проектах, практика от профессиональных разработчиков.
Программа:
1. Основы Spring Boot
Что такое Spring-Boot. Первое приложение / Spring Initializr
Spring Boot maven plugin. Конвертация в WAR. Детали реализации
Настройка проекта
Проект Lombok
2. Работа с DB (H2, Spring Data JPA)
Spring Data JPA. ApplicationRunner
H2. Популирование и конфигурирование
Рефакторинг model. Spring Data JPA @Query
3. Spring Data REST + HATEOAS
Spring Data REST
Конфигурирование Jackson
4. Spring Security
Подключение Security. Аутентификация по умолчанию
Конфигурирование в коде приложения. Password Encoding
Аутентификация пользователя из БД. AuthUser
Role and GrantedAuthority
Basic authorization. Кастомизация Json
5. REST. AccountController
REST AccountController
Error handling
Добавление HATEOAS в AccountController. Paging