спринг пекции. Spring для начинающих
Скачать 2.11 Mb.
|
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 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 для начинающих |