Spring Framework и работа с базами данных: Spring Data JPA

В предыдущих постах о работе с базами данных в Spring Framework я поверхностно описал использование JdbcTemplate и NamedParameterJdbcTemplate. Пользоваться данными инструментами безусловно удобно, но у них есть определённые ограничения, среди которых:

  • Зависимость SQL-запросов от конкретной СУБД
  • Необходимость в самостоятельной реализации преобразования данных из БД в экземпляры классов-сущностей
  • Увеличение и усложнение кода при появлении новых таблиц и столбцов в таблицах

В стеке Spring существует проект Spring Data, реализующий большую часть тривиальных задач и упрощающий работу с источниками данных. В качестве источников данных могут использоваться как стандартные реляционные базы данных, так и NoSQL-хранилища вроде MongoDB или Redis.

Читать далее Spring Framework и работа с базами данных: Spring Data JPA

Коротко о PathVariable

Один из распространённых способов передачи параметров запроса — в виде частей адреса запроса. Например, у нас есть страница с контактными данными человека, её адрес выглядит следующим образом:

http://example.com/person/contacts?personId=42

Но, если передать идентификатор человека не параметром personId, а частью адреса запроса, то получится что-то вроде

http://example.com/person/42/contacts

Что выглядит намного понятнее и удобнее.

Для работы с параметрами, передаваемыми через адрес запроса в Spring WebMVC используется аннотация @PathVariable. Читать далее Коротко о PathVariable

Пример веб-приложения на Spring Boot

Отвечая на вопрос «Как отобразить данные из БД» на Тостере, написал небольшое веб-приложение, использующее Spring Framework, Boot и Data и JSP/JSTL в качестве способа отображения страниц. Задача — написать простую книгу отзывов, которая может вывести список отзывов и добавить новый.

Читать далее Пример веб-приложения на Spring Boot

Spring Framework и работа с базами данных: NamedParameterJdbcTemplate

В своём предыдущем посте я описал работу с JdbcTemplate на примере простого DAO-класса. Возможностей JdbcTemplate вполне хватает, что бы сделать работу с базами данными немного проще. Но использование вопросительного знака в качестве плейсхолдера для параметра запроса не всегда удобно, особенно, когда речь идёт о работе с таблицами, имеющими большое количество колонок. В этом случае удобнее будет использовать класс NamedParameterJdbcTemplate, который позволяет использовать именованные параметры в SQL-запросах. Читать далее Spring Framework и работа с базами данных: NamedParameterJdbcTemplate

Spring Framework и работа с базами данных: JdbcTemplate

Для работы с реляционными базами данных в Spring Framework предусмотрен такой замечательный инструмент как JdbcTemplate, который является обвязкой вокруг стандартных средств JDBC. JdbcTemplate прост и гибок в применении, его возможностей вполне достаточно для реализации проектов малых и средних размеров. В JDBCTemplate не предусмотрены стандартные средства ORM в отличии от Hibernate или JPA, так что при его использовании нужно самостоятельно писать мапперы, которые будут преобразовывать данные полученные из БД в объекты классов сущностей.

Читать далее Spring Framework и работа с базами данных: JdbcTemplate

Spring Framework и инициализация компонентов

Создание компонентов

Основными элементами в контексте приложения, использующего Spring Framework, являются компоненты или бины (beans), используемые для внедрения зависимостей (Dependency Injection, DI). Есть два основных способа создания таких компонентов.

Создание компонента при помощи аннотаций

Самый простой и наиболее распространённый способ создания компонента — при помощи аннотации @Component или аннотаций, наследующих её, таких как @Service, @Repository или @Controller из пакета org.springframework.stereotype. Читать далее Spring Framework и инициализация компонентов

Spring Security и токен-аутентификация: Простой вариант

На днях решил перечитать документацию Spring Security и обнаружил, к своему удивлению, что фреймворк предоставляет реализацию токен-аутентификации прямо из коробки. Получилось как всегда: вместо того, чтобы изобретать собственные велосипеды, нужно было заглянуть в документацию. В общем, как обычно, RTFM. Да, мой вариант работает вполне нормально и придерживается того же принципа, но логичнее использовать инструменты, предоставляемые разработчиками Spring. Читать далее Spring Security и токен-аутентификация: Простой вариант