Технический семинар для сотрудников компании МаксимаТелеком , проведенная 18.05.2016. В ходе семинара рассматривались следующие ключевые моменты:
1) IoC принцип
2) Beans life cycle
4) AOP
5) Spring proxy
5. Inversion of Control (IoC) –
основные понятия
▪ BeanFactory и ApplicationContext
▪ Bean и BeanDefinition
▪ BeanFactory и FactoryBean
▪ BeanFactoryPostProcessor и BeanPostProcessor
6. Этапы инициализации контекста
Парсинг
конфигурации и
создание
BeanDefinition
Настройка созданных
BeanDefinition
(BeanFactoryPostProce
ssor )
Создание бинов
(BeanFactory и
FactoryBean)
Настройка
созданных
BeanDefinition
BeanPostProcessor
7. Жизненный цикл бина
1. Вызов default конструктора
2. Запуск autowiring
3. Вызов
postProcessBeforeInitialization
интерфейса BeanPostProcessor
4. Вызов init-method
5. Вызов
postProcessAfterInitialization
Приложение запущено и готово к работе
8. Вызов destroy()
9. Вызов custom destroy-method
Definition
Pre-initialized
Ready
Destroyed
8. Области видимости(scopes) бинов
▪ singleton, prototype - Spring IoC
▪ request, session, global session, application -
web-aware ApplicationContext
9. Слушатели
▪ @PostConstruct и @PreDestroy
▪ BeanPostProcessor.postProcessBeforeInitialization() и
BeanPostProcessor.postProcessAfterInitialization()
▪ @EventListener
10. (AOP)– сквозная функциональность
public void doing() {
try {
connection.setAutoCommit(false);
// To do
connection.commit();
} catch (SQLException e ) {
connection.rollback();
} catch (Exception e ) {
//
}
}
@Transactional(rollbackFor = SQLException.class)
public void doing() {
// To do
}
11. Spring AOP
▪ Aspect (аспект)
▪ Advice (cовет): before advice, after returning
advice, after throwing advice, after (finally)
advice, around advice
▪ Join point (точка соединения)
▪ Pointcut (Срез)
▪ Introduction (Внедрение)