Стажировка-2013, разработчики, 15 занятие. web-фреймворки (2...

24
Компоненты Web- фреймворков на примере Spring Разработчики. Занятие 15 (2 часть)

Upload: 7bits

Post on 22-Jun-2015

140 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Компоненты Web-фреймворков на примере

Spring

Разработчики. Занятие 15 (2 часть)

Page 2: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Взаимодействие с БД:1. Низкоуровневые интерфейсы – JDBC, ODBC, PDO2. Для ООП – ORM

Взаимодействие с БД

Page 3: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Взаимодействие с БД

Page 4: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

JDBC – это только спецификация, ее реализует JDBC-driver для каждой БДDataSource – способ подключить JDBC-driver к приложению (например, через JNDI)

Взаимодействие с БД

Page 5: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Пример создания соединения и выполнения запроса

Установление соединения с БД – самая затратная операция

Взаимодействие с БД

Page 6: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Пул соединений (connection pool) – кэширующий контейнер для соединений с БД для их многократного повторного использования

Взаимодействие с БД

Page 7: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Взаимодействие с БД

Page 8: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Hibernate – наиболее популярная реализация ORM, поддерживающая спецификацию JPA

Взаимодействие с БД

Page 9: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Организация слоев:Приложение -> Hibernate –> DataSource -> JDBC driver -> DBMS

Взаимодействие с БД

Page 10: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Основные принципы контейнера Spring:1. Inversion of Control (IoC) 2. Dependency Injection (DI)

Компоненты web-фреймворков

Page 11: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Inversion of Control (IoC) – вызов компонента осуществляется Spring-ом

Компоненты web-фреймворков

Page 12: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Dependency Injection (DI) – компонент использует интерфейсы, реализация передается Spring-ом при вызове

Компоненты web-фреймворков

Page 13: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Bean – Java-объект, загруженный Spring-ом в контейнер, описывается в файле конфигурации либо аннотациями

Компоненты web-фреймворков

Page 14: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Время жизни (scope) компонента1. Singleton2. Prototype3. Session4. Request

Компоненты web-фреймворков

Page 15: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Dispatcher (router, front controller) – компонент, отвечающий за разбор запроса и вызов нужного компонента (Bean)

Компоненты web-фреймворков

Page 16: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Примеры URL:http://mysite.com/users/listhttp://mysite.com/users/ivanov

Примеры URI:http://mysite.com/users.jsphttp://mysite.com/user.jsp?code=ivanov

Компоненты web-фреймворков

Page 17: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

MVC (model, view, controller) – шаблон проектирования, позволяющий отделить данные от их представления

MVC

Page 18: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

MVC

Page 19: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Model – слой взаимодействия с БД, обеспечивает Java-объекты и сервисы для их извлечения из БД и сохранения в нее

Вместо БД может быть другое хранилище, слой модели абстрагирует от конкретики

MVC

Page 20: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

View – слой представления данных (Java-объектов) в виде HTML, XML, PDF, JSON и т.д.

MVC

Page 21: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Controller – слой управления моделью и представлением

MVC

Page 22: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Типичный Controller:

1. Разбор запроса2. Обращение к БД3. Обработка данных, подготовка для представления4. Вызов представления с подготовленными данными

MVC

Page 23: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Типичный Spring-Controller:

1. Анализ HttpRequest2. Обращение к Hibernate (или JDBC)3. Обработка данных, подготовка Java-объектов4. Определение нужной JSP, передача данных

MVC

Page 24: Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (2 часть)

Маршрутизация (routing):

Request -> URL -> URI -> Controller -> View -> Response

MVC