Story Testing Approach for Enterprise Applications using Selenium Framework
Spring Data: New approach to persistence
1. Spring Data - новый
взгляд на persistence
Алексей Резчиков
Май 2013
SpringByExample.com.ua
2. Обо мне
• Java разработчик и тимлид уже более
7-ми лет
• Работаю со Spring c 2006 года
• Последователь XP/Agile/Lean
@ua_spring #jeeconf
• Популяризирую Spring
Framework в рамках
SpringByExample.com.ua
4. Spring Data?
• Проект верхнего уровня SpringSource
• Направлен на упрощение работы с хранилищами
данных
• Реализация подхода polyglot persistence
• Выделение абстракции Repository
• Сегодня детальнее поговорим про Spring Data JPA
@ua_spring #jeeconf
11. Демо приложение
• TODOShare – TODO менеджер
• Spring 3.2.x
• Spring MVC, Spring Security, Spring Data JPA,
Spring Data Solr
• Thymeleaf
• jQuery, Bootstrap
• Solr
• Tomcat 7
• H2
https://github.com/mcgray/TODOShare/
@ua_spring #jeeconf
12. Раз – два – три
• Подключаем репозитории
• Наследуем интерфейс
• Используем их
@ua_spring #jeeconf
16. Predicates & QueryDSL
• Сторонняя библиотека от Mysema
• Наследуемся от QueryDSLPredicateExecutor
• Добавляем инструментальную обработку классов в
билд
• Составляем Predicate
• Передаем его в метод (зачастую вместе с Pageable)
@ua_spring #jeeconf
На сегодняшний день большое число приложений содержит более одного хранилища данных. Реляционные и нереляционные базы данных, кеши и datagrid. Необходимо быстро и качественно организовывать работу со всеми хранилищами при этом соблюдая некое однообразие в интерфейсе взаимодействия. Данную задачу успешно решает проект SpringData. Я хотел бы на примере показать как SpringData облегчает жизнь при работе со старым-добрым JPA, а также какие возможности предоставляет при работе с NoSQL решениями.
Java?Spring?
Пример проблемы которую в первую очередь решает Spring Data
Пример проблемы которую в первую очередь решает Spring Data
Пример проблемы которую в первую очередь решает Spring Data
То чего не получить «из коробки» при использовании Generic Dao
То чего не получить «из коробки» при использовании Generic Dao
Интерфейс от которого надо наследоватьсяПримеры использования