Upload
7bits
View
140
Download
1
Embed Size (px)
Citation preview
Компоненты Web-фреймворков на примере
Spring
Разработчики. Занятие 15 (2 часть)
Взаимодействие с БД:1. Низкоуровневые интерфейсы – JDBC, ODBC, PDO2. Для ООП – ORM
Взаимодействие с БД
Взаимодействие с БД
JDBC – это только спецификация, ее реализует JDBC-driver для каждой БДDataSource – способ подключить JDBC-driver к приложению (например, через JNDI)
Взаимодействие с БД
Пример создания соединения и выполнения запроса
Установление соединения с БД – самая затратная операция
Взаимодействие с БД
Пул соединений (connection pool) – кэширующий контейнер для соединений с БД для их многократного повторного использования
Взаимодействие с БД
Взаимодействие с БД
Hibernate – наиболее популярная реализация ORM, поддерживающая спецификацию JPA
Взаимодействие с БД
Организация слоев:Приложение -> Hibernate –> DataSource -> JDBC driver -> DBMS
Взаимодействие с БД
Основные принципы контейнера Spring:1. Inversion of Control (IoC) 2. Dependency Injection (DI)
Компоненты web-фреймворков
Inversion of Control (IoC) – вызов компонента осуществляется Spring-ом
Компоненты web-фреймворков
Dependency Injection (DI) – компонент использует интерфейсы, реализация передается Spring-ом при вызове
Компоненты web-фреймворков
Bean – Java-объект, загруженный Spring-ом в контейнер, описывается в файле конфигурации либо аннотациями
Компоненты web-фреймворков
Время жизни (scope) компонента1. Singleton2. Prototype3. Session4. Request
Компоненты web-фреймворков
Dispatcher (router, front controller) – компонент, отвечающий за разбор запроса и вызов нужного компонента (Bean)
Компоненты web-фреймворков
Примеры URL:http://mysite.com/users/listhttp://mysite.com/users/ivanov
Примеры URI:http://mysite.com/users.jsphttp://mysite.com/user.jsp?code=ivanov
Компоненты web-фреймворков
MVC (model, view, controller) – шаблон проектирования, позволяющий отделить данные от их представления
MVC
MVC
Model – слой взаимодействия с БД, обеспечивает Java-объекты и сервисы для их извлечения из БД и сохранения в нее
Вместо БД может быть другое хранилище, слой модели абстрагирует от конкретики
MVC
View – слой представления данных (Java-объектов) в виде HTML, XML, PDF, JSON и т.д.
MVC
Controller – слой управления моделью и представлением
MVC
Типичный Controller:
1. Разбор запроса2. Обращение к БД3. Обработка данных, подготовка для представления4. Вызов представления с подготовленными данными
MVC
Типичный Spring-Controller:
1. Анализ HttpRequest2. Обращение к Hibernate (или JDBC)3. Обработка данных, подготовка Java-объектов4. Определение нужной JSP, передача данных
MVC
Маршрутизация (routing):
Request -> URL -> URI -> Controller -> View -> Response
MVC