Upload
nakraynikov-oleg
View
186
Download
2
Embed Size (px)
Citation preview
Пролог. А что если скоро наступит spring?
О чем поговорим сегодня
▪ IoC принцип▪ Beans life cycle▪ AOP▪ Spring proxy
Spring Framework Runtime
Inversion of Control (IoC) – основные понятия
▪ BeanFactory и ApplicationContext▪ Bean и BeanDefinition▪ BeanFactory и FactoryBean▪ BeanFactoryPostProcessor и BeanPostProcessor
Этапы инициализации контекста
Парсинг конфигурации и
создание BeanDefinition
Настройка созданных BeanDefinition
(BeanFactoryPostProcessor )
Создание бинов(BeanFactory и FactoryBean)
Настройка созданных
BeanDefinitionBeanPostProcessor
Жизненный цикл бина1. Вызов default конструктора
2. Запуск autowiring3. Вызов postProcessBeforeInitialization интерфейса BeanPostProcessor4. Вызов init-method5. Вызов postProcessAfterInitialization
Приложение запущено и готово к работе
8. Вызов destroy()9. Вызов custom destroy-method
Definition
Pre-initialized
Ready
Destroyed
Области видимости(scopes) бинов
▪ singleton, prototype - Spring IoC▪ request, session, global session, application -
web-aware ApplicationContext
Слушатели
▪ @PostConstruct и @PreDestroy▪ BeanPostProcessor.postProcessBeforeInitialization() и
BeanPostProcessor.postProcessAfterInitialization() ▪ @EventListener
(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 }
Spring AOP
▪ Aspect (аспект)▪ Advice (cовет): before advice, after returning
advice, after throwing advice, after (finally) advice, around advice▪ Join point (точка соединения)▪ Pointcut (Срез)▪ Introduction (Внедрение)
Spring Proxy
Использованные источники
▪ http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/
▪ http://spring-projects.ru/guides/lessons/lesson-2/
▪ https://habrahabr.ru/post/222579/
▪ https://www.youtube.com/watch?v=U8MtGYa04v8
Спасибо за внимание!