Сценарии, выполняемые на стороне клиента
Фреймворки JavaScript
Сценарии, выполняемые на стороне сервера
RPC, SOAP
REST
WSDL
XML, JSON
AJAX
Сценарии работы web-сервера
По материалам книги: Джеймс Ли, Брент Уэр Использование Linux, Apache, MySQL и PHP для разработки Web-приложений, Издательский дом "Вильямс".
Разработка Enterprise-приложения на основе Spring FrameworkCUSTIS
Открытый семинар для студентов в компании CUSTIS (9 апреля 2015 года).
Лектор: Вячеслав Муравлев, ведущий Java-разработчик.
Аннотация: За 11 лет своего существования Spring Framework превратился в настоящий кладезь решений типовых задач, возникающих при разработке Enterprise-приложения. Прежде чем разрабатывать свои механизмы работы с БД, авторизации и аутентификации, имитации промышленного окружения для проведения тестирования, пакетной загрузки данных, запуска заданий по расписанию, асинхронного взаимодействия компонентов системы и т. д. — посмотрите в Spring повнимательнее, там это уже есть и готово к использованию. На семинаре мы создадим Enterprise-приложение «с нуля», решая в процессе типовые задачи с помощью готовых компонентов Spring Framework.
Видеозапись семинара: https://vimeo.com/125020967.
Сценарии, выполняемые на стороне клиента
Фреймворки JavaScript
Сценарии, выполняемые на стороне сервера
RPC, SOAP
REST
WSDL
XML, JSON
AJAX
Сценарии работы web-сервера
По материалам книги: Джеймс Ли, Брент Уэр Использование Linux, Apache, MySQL и PHP для разработки Web-приложений, Издательский дом "Вильямс".
Разработка Enterprise-приложения на основе Spring FrameworkCUSTIS
Открытый семинар для студентов в компании CUSTIS (9 апреля 2015 года).
Лектор: Вячеслав Муравлев, ведущий Java-разработчик.
Аннотация: За 11 лет своего существования Spring Framework превратился в настоящий кладезь решений типовых задач, возникающих при разработке Enterprise-приложения. Прежде чем разрабатывать свои механизмы работы с БД, авторизации и аутентификации, имитации промышленного окружения для проведения тестирования, пакетной загрузки данных, запуска заданий по расписанию, асинхронного взаимодействия компонентов системы и т. д. — посмотрите в Spring повнимательнее, там это уже есть и готово к использованию. На семинаре мы создадим Enterprise-приложение «с нуля», решая в процессе типовые задачи с помощью готовых компонентов Spring Framework.
Видеозапись семинара: https://vimeo.com/125020967.
The document discusses SQL SELECT statements and their capabilities. It explains how to write basic SELECT statements to retrieve data from one or more tables, including selecting specific columns, filtering rows, sorting results, and performing calculations. It also covers JOIN operations, including inner joins to combine data from multiple tables and self joins to join a table to itself.
This document provides an overview and introduction to Spring Data JPA, including:
- Refactoring a plain JPA and Spring application to use Spring Data JPA repositories to reduce boilerplate code.
- The Spring Data repository abstraction and how it simplifies data access layers.
- Advanced topics like JPA specifications and QueryDSL for more complex queries.
- Configuring Spring Data JPA in Spring applications.
Spring Data provides abstractions and implementations for accessing relational and NoSQL data stores. It includes modules for specific databases like Spring Data JPA. Repositories provide basic CRUD operations and can define custom query methods. Entities represent database tables with annotations for properties, relationships, and inheritance. The EntityManager manages persistence contexts and entity instances.
This document discusses different types of waits in Selenium, including implicit waits, explicit waits, and fluent waits. It provides examples of using implicit waits to wait for an element to be displayed or throw an exception if not found. Explicit waits allow setting a customizable timeout and waiting for specific events like an element's presence, visibility, or a page loading. The document advises against using implicit and explicit waits together and provides a custom wait example. It also outlines steps for a test using explicit waits to wait for a page header to be visible and a search button to be clickable.
This document discusses different types of waits in Selenium: implicit waits, explicit waits, and fluent waits. Implicit waits globally apply to all elements on a page, while explicit waits allow waiting for specific elements and conditions. It is recommended to use explicit waits over implicit waits to avoid mixing the two. An example is provided to demonstrate implementing an explicit wait to check for an element's visibility before proceeding with a test.
3. Spring
Spring Framework обеспечивает
решения многих задач, с
которыми сталкиваются Java
разработчики и организации,
которые хотят создать
информационную систему,
основанную на платформе Java.
4. Spring
Spring Framework не полностью
связан с платформой Java EE,
но имеет масштабную
интеграцию с ней, что является
важной причиной его
популярности.
5. Spring история
Первая версия была
написана Родом Джонсоном,
который впервые
опубликовал её вместе с
изданием своей книги
«Expert One-on-One Java EE
Design and Development»
(Wrox Press, октябрь 2002 года).
6. Spring история версий
Spring был впервые выпущен
под лицензией Apache 2.0
license в июне 2003 года.
Первый стабильный релиз 1.0
был выпущен в марте 2004.
Spring 2.0 был выпущен в
октябре 2006
7. Spring история версий
Spring 2.5 — в ноябре 2007,
Spring 3.0 в декабре 2009, и
Spring 3.1 в декабре 2011.
Текущая версия — 4.2.5.
8. Spring история версий
Spring Framework может
быть рассмотрен как
коллекция меньших
фреймворков или
фреймворков во
фреймворке.
9.
10. Spring
Inversion of Control – это
конфигурирование
компонентов приложений
и управление жизненным
циклом Java-объектов.
12. Spring
Доступа к данным (Data Access)
работает с системами управления
реляционными базами данных на
Java-платформе, используя JDBC-
и ORM-средства и обеспечивая
решения задач, которые
повторяются в большом числе
Java-based environments.
15. Spring
Аутентификация и авторизация
конфигурируемый инструментарий
процессов аутентификации и
авторизации, поддерживающий много
популярных и ставших
индустриальными стандартами
протоколов, инструментов, практик
через дочерний проект Spring Security
(ранее известный как Acegi).
17. Spring
Работа с сообщениями
конфигурируемая регистрация
объектов-слушателей сообщений
для прозрачной обработки
сообщений из очереди сообщений
с помощью JMS, улучшенная
отправка сообщений по стандарту
JMS API.
21. Spring Web
Spring Web Flow (SWF) - это
суб-проект Spring Framework,
целью которого является
предоставление
инфраструктуры для разработки
веб-приложений со сложной
структурой.
22. Spring Web
Цели:
описать правила навигации
по страницам
управлять состояниями
навигации
облегчить повторное
использование кода
23. Inversion of Control (IoC)
Инверсия управления - это
принцип объектно-
ориентированного
программирования, который
служит для уменьшения
связанности слоёв сложных
приложений.
24. Inversion of Control (IoC)
Принцип заключается в том что
каждый слой приложение
работает с нижестоящим слоем
не на прямую, а опосредованно
(через слой абстракций).
25. Inversion of Control (IoC)
В результате это позволяет
легко и безболезненно
заменить реализацию
каждого из слоёв на новую,
при этом не затронув работу
вышестоящих слоёв.
26. Inversion of Control (IoC)
В результате IoC позволяет
легко и безболезненно
заменить реализацию каждого
из слоёв на новую, при этом не
затронув работу вышестоящих
слоёв.
27. IoC vs DI
В 2004 году Мартин Фаулер в
предложил уйти от термина
Inversion of Control (IoC) в пользу
Dipendancy Injection (DI),
мотивируя это тем, что термин IoC
слишком общий и вызывает
проблемы в осознании
происходящего.
28. Dipendency Injection (DI)
Dipendency Injection (DI) – это
шаблон проектирования
позволяющий разработчикам
«развязать» (decouple)
компоненты их приложения, тем
самым ослабив связи между
ними.
29. Dipendency Injection (DI)
Constructor Injection —
внедрение через конструктор
Setter Injection — внедрение
через сетторы
Method Injection —
внедрение через гетторы
30. Spring – „контекст“ (context).
Контекст – это среда, в которой
существует объект.
Объект – это разрабатываемая
компонента (javaBean), а среда –
все остальные компоненты (beans),
необходимые для жизненного
цикла вашей компоненты.
31. Spring – „контекст“ (context).
Например, контроллер,
позволяющий отправить
клиенту сообщение по почте, в
данном случае является
объектом, а сам мэйлер и логер
– являются средой окружения.
32. Spring – „контекст“ (context).
Описание набора
компонент (beans) и
взаимосвязей между ними
и является контекстом
приложения (application
context).
33. Spring – „контекст“ (context).
Для разработчика, использующего
Spring Framework - Application
Context представляет собой набор
xml – файлов и аннотаций,
описывающий компоненты (beans)
и взаимосвязи между ними.
34. Spring MVC
Spring MVC построен вокруг
центрального сервлета
(DispatcherServlet ), который
распределяет запросы по
контроллерам, а также
предоставляет другие широкие
возможности при разработке веб
приложений.
37. Spring MVC
DispatcherServlet (диспетчер
сервлетов) получает запрос,
далее он смотрит свои
настройки, чтобы понять какой
контроллер использовать (на
рисунке Handler Mapping).
Запрос передается в
Controller, где происходит
обработка запроса и
обратно посылается
ModelAndView
DispatcherServlet на основании
полученного ModelAndView
ищет какое представление ему
использовать (View Resolver) и
получает в ответе имя
представления View
В представление
передаются данные
(model) и обратно, если
необходимо,
посылается ответ от
представления.
38. Основы шаблона Spring MVC
Model — представление
данных, сами данные
View — представление, вид,
отображение
Controller — управление, связь
между моделью и видом.
43. Controller
@Controller
public class SimpleController {
@RequestMapping(value = "/simple2")
public ModelAndView simple2() {
ModelAndView mav = new ModelAndView();
mav.setViewName("simple");
return mav;
}
}
ModelAndView, агрегирует все параметры модели и имя
отображения
44. Controller
Аннотации @RequestMapping в
классе. Все методы будут получать
запросы с URI, который будет
начинатся строкой, указанной в
аннотации @RequestMapping перед
объявлением класса контроллера.
47. URI в стиле Ant
@RequestMapping(value =
"/antstyle/*/hi")
public String antStyle() {
return ANT_STYLE_VIEW_NAME;
}
будет обрабатывать и запрос /antstyle/a/hi, и
/antstyle/b/hi, и /antstyle/abracadabra/hi, благодаря
использованию символа '*'.
52. @CookieValue
@RequestMapping(value = "/cookie", method =
RequestMethod.GET)
public String cookie(@CookieValue("JSESSIONID")
String jsessionid, Model model) {
model.addAttribute("msg", "JSESSIONID: " +
jsessionid );
return "info";
}
Аннотация @CookieValue позволяет привязать
параметр метода контролера к HTTP-cookie.
53. @Autowired
Используя аннотацию @Autowired,
не нужно заботиться о том, как
лучше всего передать классу или
bean'у экземпляр другого bean'a.
Фреймворк Spring сам найдет
нужный bean и подставит его
значение в свойство, которое
отмечено данной аннотацией.
58. @Service
@Service - (Сервис-слой
приложения) - аннотация
объявляющая, что этот класс
представляет собой сервис –
компонент сервис-слоя.
Сервис является подтипом класса @Component.
Использование данной аннотации позволит
искать бины-сервисы автоматически.
61. @Transactional
@Transactional - перед
исполнением метода помеченного
данной аннотацией начинается
транзакция, после выполнения
метода транзакция коммитится, при
выбрасывании любого
RuntimeException откатывается.
63. @Scope
@Scope — служит для указания
области видимости бина.
Пример:
@Service
@Scope("prototype")
public class UserService
64. Области видимости бинов
singleton - Возвращает один и
тот же экземпляр бина на
каждый запрос контейнера
Spring IoC (по умолчанию).
prototype - Создает и
возвращает новый экземпляр
бина на каждый запрос.
65. Области видимости бинов
request - создает и
возвращает экземпляр бина
на каждый HTTP запрос*.
session - создает и
возвращает экземпляр бина
для каждой HTTP сессии.
66. Области видимости бинов
global-session - Создает и возвращает
экземпляр бина для глобальной HTTP
сессии.
application - Жизненный цикл
экземпляра ограничен в пределах
ServletContext. Действует, только если
вы используете web-aware
ApplicationContext
67. Жизненный цикл сбина
Жизненный цикл Spring бина —
время существование класса.
Spring бины инициализируются
при инициализации Spring
контейнера. Когда контейнер
уничтожается, уничтожаются и
все бины.