jugru JUG.ru 2014 (23.10.2014)

Тренинг «Spring с нуля»

img

В рамках этого тренинга мы начнем изучение Spring с самых основ и постепенно перейдем к рассмотрению всех основных внутренностей фреймворка Spring для того, чтобы иметь возможность адаптировать его под нужды вашего проекта. Мы сравним преимущества и недостатки всех видов контекстов, от XML до конфигурации на Groovy, который появился вместе со Spring 4, и обсудим, когда и чем правильнее пользоваться.

В процессе тренинга мы столкнёмся с рядом нетривиальных проблем и займёмся так называемым троблешутингом. Мы будем писать кастомные аннотации, квалифаеры, бин пост процессоры, бин фактори пост процессоры, контекст листенеры. Мы будем генерить классы на лету при помощи динамических прокси и CGLIB.

Для того, чтобы ваш код был максимально читабельный и бизнес-логика была бы отделена от иных аспектов, таких, как транзакции, бенчмарк обработка исключений и т.п., мы разберем, как правильно использовать Spring AOP.

Данный тренинг затронет использование груви для написание бинов, а также груви скриптов для самообновляющихся компонентов. Мы рассмотрим наиболее лаконичные и эффективные способы создания различных конфигураций при работе в множественной среде. Я покажу как при помощи новых фишек четвёртого спринга, не меняя ни одной строчки кода или конфигурации, можно заставить спринг инициализировать различные имплементации бинов в зависимости от того, в каком окружении бежит ваш код (test / production)

И наконец, если останется время и силы, можно будет поговорить про дополнительные темы, такие как скеджулеры, работа с кварцом, Spring RMI и Spring validations.

День 1

  • Основные концепции, шаблоны проектирования и философия Spring, продвинутый Reflection

  • Различные виды контекстов (XML, Annotations, Java Config, Groovy script)

  • BeanPostProcessors

  • Dynamic Proxy

  • BeanFactoryPostProcessors

  • Аннотации Spring и написания собственных аннотаций

  • Как адаптировать свой framework под Spring

  • Qualifiers

  • Factory Bean и наследование бинов в XML-e*

*- Java Config + CGLIB

День 2

  • Best practices: смешанные контексты и когда чем пользоваться, обновление прототипов в singleton бинах, двойные прокси, поиск метаданных оригинального класса в прокси

  • Spring AOP

  • Написание аспектов

  • Обработка исключений через аспекты, решение проблемы Stack trace и утечки памяти

  • Что нового в Spring 4

  • Динамические контексты

  • Самообновляющиеся Бины на Groovy