Главная страница

спринг пекции. Spring для начинающих


Скачать 2.11 Mb.
НазваниеSpring для начинающих
Анкорспринг пекции
Дата23.03.2023
Размер2.11 Mb.
Формат файлаpdf
Имя файла102 all-slides.pdf
ТипДокументы
#1009485
страница3 из 3
1   2   3
form:errors - форма, отображающая ошибки
@Valid означает, что атрибут должен пройти процесс валидации
BindingResult содержит результат этой валидации

Валидация форм Spring MVC
@Min – числовое значение должно быть больше или равно указанного параметра
@Max – числовое значение должно быть меньше или равно указанному параметру

Валидация форм Spring MVC
@Pattern – значение поля должно соответствовать определённому
Регулярному Выражению

Spring MVC + Hibernate

Spring MVC + Hibernate

Spring MVC + Hibernate

Spring MVC + Hibernate
Конфигурация приложения Spring MVC + Hibernate:
Подготовка базы данных и таблицы
• Добавление dependency в pom файл
• Конфигурация web.xml
• Конфигурация applicationContext.xml

Spring MVC + Hibernate

Spring MVC + Hibernate
Бра узер
@
RequestMapping
("/")
showAllEmployees
Model
Employee
DAO
MyController
Hibernate
DAO(Data Access Object) –
вспомогательный компонент, ответственный за работу с БД.

Spring MVC + Hibernate

Spring MVC + Hibernate
При использовании аннотации @Transactional,
Spring берёт на себя ответственность за открытие и закрытие транзакций
@Controller – это специализированный @Component
@Repository – это специализированный @Component.
Данная аннотация используется для DAO.
При поиске компонентов, Spring также будет регистрировать все DAO с аннотацией @Repository в
Spring Container-е

Spring MVC + Hibernate

Spring MVC + Hibernate
Controller
Hibernate
DAO
DAO
Impl
@Repository
View

Spring MVC + Hibernate
Controller
Hibernate
DAO
DAO
Impl
@Repository
View
Employee
Hibernate
DAO
DAO
Impl
@Repository
Detail

Spring MVC + Hibernate
Controller
Hibernate
DAO
DAO
Impl
@Repository
View
Employee
Hibernate
DAO
DAO
Impl
@Repository
Detail
Service

Spring MVC + Hibernate
Аннотация @Service отмечает класс, содержащий бизнес-логику.
В иерархии компонентов приложения Service является соединительным звеном между Controller-ом и DAO
@Service – это специализированный @Component.
При поиске компонентов, Spring также будет регистрировать все классы с аннотацией @Service в
Spring Container-е

Spring MVC + Hibernate

Spring MVC + Hibernate

Spring MVC + Hibernate
Controller
Hibernate
DAO
Service

Spring MVC + Hibernate

Spring MVC + Hibernate

Spring MVC + Hibernate

Spring MVC + Hibernate + AOP
Конфигурация AOP
• Добавление dependency в pom файл
• Добавление конфигурации в applicationContext.xml

REST API
My App
Country
Info
Service
Italy
JSP page
Country:
Capital:
Population:
Area:
Italy
Rome
60 mln
301.000 km
2
REST – REpresentational State Transfer

REST API
My App
Country
Info
Service
Italy
Request
Response
REST – это очень удобный способ коммуникации между приложениями. Он описывает стандарты, используя которые Клиент взаимодействует с Сервером посредством HTTP протокола
Client
Server

REST API
Вызовы REST API могут осуществляться, используя
HTTP протокол
REST API Не принуждает использовать какой-то конкретный язык программирования.
Клиентская и серверная части нашего приложения могут быть написаны на разных языках программирования
Для передачи информации можно использовать не только JSON, но и любой другой формат данных

JSON
JSON – JavaScript Data Notation
Формат данных JSON представляет собой текстовую информацию
JSON используется для хранения и особенно для обмена информацией
JSON не привязан к какому-то конкретному языку программирования и используется повсеместно
Формат данных JSON содержит коллекцию пар ключ-значение
JSON Data Binding или JSON Mapping – это привязка
JSON к Java объекту

JSON

JSON
getters
setters

HTTP протокол
HTTP – это протокол, который используется для передачи данных в сети.
Client
Server
Browser
Tomcat с нашим
Spring MVC приложением
HTTP request
HTTP response

HTTP протокол

HTTP протокол

HTTP протокол
@GetMapping связывает HTTP запрос, использующий
HTTP метод GET с методом контроллера.
@PostMapping связывает HTTP запрос, использующий
HTTP метод POST с методом контроллера.
GET
POST

Передаваемая информация хранится в URL

Ограничен максимальной длиной

Не поддерживает передачу бинарных данных

Можно поделиться ссылкой

Как правило, используется для получения информации

Передаваемая информация хранится в теле запроса

Не ограничен максимальной длиной

Поддерживает передачу бинарных данных

Ссылкой поделиться нельзя

Как правило, используется для добавления данных

HTTP request
HTTP метод и адрес (URL)
Request line
Zero or more Headers
An empty line
Message body(opional)
Метаданные о запросе
Разделяет отдел header от отдела body
Payload – полезная нагрузка

HTTP response
Код статуса и текст статуса
Status line
Zero or more Headers
An empty line
Message body(opional)
Метаданные об ответе
Разделяет отдел header от отдела body
Payload – полезная нагрузка

HTTP response status codes
1XX – Informational. Запрос был получен и процесс продолжается.
2XX – Success. Запрос был успешно получен, понят и принят.
3XX – Redirection. Для выполнения запроса необходимо предпринять дальнейшие действия.
4XX – Client Error. Запрос содержит неверный синтаксис или не может быть выполнен.
5XX – Server Error. Серверу не удалось выполнить корректный запрос.
404 File Not Found
500 Internal
Server Error

REST API
Client
Server
Browser
Tomcat с нашим
Spring MVC приложением
HTTP request
HTTP response api/employees

REST API
При создании REST API настоятельно рекомендуется придерживаться общепринятых стандартов:
HTTP метод
URL
CRUD операция
GET
api/employees
Получение всех работников
GET
api/employees/{employeeId}
Получение одного работника
POST
api/employees
Добавление работника
PUT
api/employees
Изменение работника
DELETE
api/employees/{employeeId}
Удаление работника

REST API
Конфигурация приложения Spring MVC + Hibernate без участия XML файлов:
• Подготовка базы данных и таблицы
• Добавление dependency в pom файл
• Создание конфигурационного Java класса
• Создание класса для реализации Dispatcher
Servlet
• Добавление в проект Tomcat

REST API
@RestController – это Controller, который управляет
REST запросами и ответами.

REST API
HTTP метод
URL
CRUD операция
GET
api/employees
Получение всех работников
GET
api/employees/{employeeId}
Получение одного работника
POST
api/employees
Добавление работника
PUT
api/employees
Изменение работника
DELETE
api/employees/{employeeId}
Удаление работника

REST API
Получение всех работников
Client
Server api/employees
GET

REST API
HTTP метод
URL
CRUD операция
GET
api/employees
Получение всех работников
GET
api/employees/{employeeId}
Получение одного работника
POST
api/employees
Добавление работника
PUT
api/employees
Изменение работника
DELETE
api/employees/{employeeId}
Удаление работника

REST API
Получение одного работника
Client
Server api/employees/1
GET

REST API
Аннотация @PathVariable используется для получения значения переменной из адреса запроса

REST API
Client
REST
Controller api/employees/1000
GET

REST API
Аннотацией @ExceptionHandler отмечается метод, ответственный за обработку исключений
Обёртка HTTP response
Тип объекта, который добавляется в HTTP response body
Exception, на который должен реагировать данный метод
Status Code для HTTP response

REST API
Client
REST Controller
Controller Advice
Exception
Handler
Exception
Аннотацией @ControllerAdvice отмечается класс, предоставляющий функциональность Global
Exception Handler-а
REST Controller api/employees/1000
GET

REST API
HTTP метод
URL
CRUD операция
GET
api/employees
Получение всех работников
GET
api/employees/{employeeId}
Получение одного работника
POST
api/employees
Добавление работника
PUT
api/employees
Изменение работника
DELETE
api/employees/{employeeId}
Удаление работника

Spring MVC + Hibernate

REST API
Добавление работника
Client
Server api/employees
POST

REST API
Аннотация @RequestBody связывает тело HTTP метода с параметром метода Controller-а
Аннотация @PostMapping связывает HTTP запрос, использующий HTTP метод POST с методом контроллера.

REST API
HTTP метод
URL
CRUD операция
GET
api/employees
Получение всех работников
GET
api/employees/{employeeId}
Получение одного работника
POST
api/employees
Добавление работника
PUT
api/employees
Изменение работника
DELETE
api/employees/{employeeId}
Удаление работника

REST API
Изменение работника
Client
Server api/employees
PUT

REST API
Аннотация @PutMapping связывает HTTP запрос, использующий HTTP метод PUT с методом контроллера.

REST API
HTTP метод
URL
CRUD операция
GET
api/employees
Получение всех работников
GET
api/employees/{employeeId}
Получение одного работника
POST
api/employees
Добавление работника
PUT
api/employees
Изменение работника
DELETE
api/employees/{employeeId}
Удаление работника

REST API
Удаление работника
Client
Server api/employees/13
Employee with ID=13 was deleted
DELETE

REST API
Аннотация @DeleteMapping связывает HTTP запрос, использующий HTTP метод DELETE с методом контроллера.

REST API
My App
Country
Info
Service
Italy
Request
Response
Client
Server

REST API
HTTP метод
URL
CRUD операция
GET
api/employees
Получение всех работников
GET
api/employees/{employeeId}
Получение одного работника
POST
api/employees
Добавление работника
PUT
api/employees
Изменение работника
DELETE
api/employees/{employeeId}
Удаление работника

REST API
My App
Employee
REST
Service api/employees
GET
List

Spring Security
Spring Security предоставляет функционал для обеспечения безопасности приложения
Аутентификация – процедура проверки подлинности путём сравнения введённых user name-а и пароля с user name-ом и паролем, хранящимися в базе
Авторизация – процедура проверки разрешений на доступ к тому или иному ресурсу

Spring Security
Кабинет для менеджеров
Бухгалтерия
Имя
Zaur
Роль
Бухгалтер
Менеджер
Только для бухгалтеров
Только для менеджеров
Менеджер
Менеджер
Менеджер
Менеджер

Spring Security
Бра узер
URL
role = HR

Spring Security
Конфигурация приложения Spring MVC + Spring Security без участия XML файлов:
• Добавление dependency в pom файл
• Создание конфигурационного Java класса
• Создание класса для реализации Dispatcher
Servlet
• Добавление в проект Tomcat
• Создание Security Initializer
• Создание конфигурации для Spring Security

Spring Security
Если enabled = 1, это означает, что юзер может совершать вход в систему
Если enabled = 0, это означает, что юзер заблокирован

Spring Security
{noop}
– никакого шифрования. Пароль прописывается в виде обычного текста.
Пароль в таблице содержится в следующем виде:
{алгоритм кодирования}
зашифрованный пароль
{bcrypt}
–шифрование с помощью хеш- функции bcrypt. Пароль прописывается в зашифрованном виде.

Spring Security
bcrypt(текстовый пароль + соль) = шифрованный пароль

Spring Boot
Spring Boot – это фреймворк, целью которого является упрощение создания приложения на основе Spring
• Автоматическая конфигурация приложения
Spring Boot облегчает работу программиста по следующим направлениям:
• Управление зависимостями в maven проектах
• Встроенная поддержка сервера

Spring Boot
Starter пакет – это набор взаимосвязанных зависимостей, которые могут быть добавлены в приложение.
@SpringBootApplication
@EnableAutoConfiguration
@Configuration
@ComponentScan
=
+
+

Spring Boot
Spring Boot REST API
HTTP метод
URL
CRUD операция
GET
api/employees
Получение всех работников
GET
api/employees/{employeeId}
Получение одного работника
POST
api/employees
Добавление работника
PUT
api/employees
Изменение работника
DELETE
api/employees/{employeeId}
Удаление работника

Spring Boot
Конфигурация приложения
• Подготовка базы данных и таблицы
• Добавление dependency в pom файл
• Добавление properties для подключения к базе данных

Spring Boot
JPA (Java Persistence API) – это стандартная спецификация, которая описывает систему для управления сохранением Java объектов в таблицы базы данных
Hibernate – самая популярная реализация спецификации JPA
Таким образом JPA описывает правила, а Hibernate реализует их.

Spring Boot
В Spring Boot дефолтной реализацией JPA является
Hibernate.
Роль Hibernate сессии в JPA выполняет EntityManager

Spring Boot
Spring Data JPA – удобный механизм для взаимодействия с таблицами баз данных, позволяющий минимизировать количество кода
Метод
CRUD операция
findAll
Получение всех работников findById
Получение одного работника save
Добавление работника save
Изменение работника deleteById
Удаление работника

Spring Boot
Spring Data REST предоставляет механизм автоматического создания REST API на основе типа
Entity, прописанного в репозитории проекта
HTTP метод
URL
CRUD операция
PUT
employees/
id
Изменение работника

Spring Boot
Spring Boot Actuator предоставляет готовые конечные точки
(endpoints), с помощью которых мониторится приложение
Адрес
Описание
/actuator/health
Информация о статусе приложения
/actuator/info
Информация о приложении
/actuator/beans
Информация о всех бинах, зарегистрированных в Spring Container-е
/actuator/mappings
Информация о всех Mapping-ах

zaurtregulov@gmail.com
Spring
Hibernate
Spring Boot
для
начинающих
1   2   3


написать администратору сайта