spring 4. part 1 - ioc, aop
TRANSCRIPT
![Page 2: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/2.jpg)
Пролог. А что если скоро наступит spring?
![Page 3: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/3.jpg)
О чем поговорим сегодня
▪ IoC принцип▪ Beans life cycle▪ AOP▪ Spring proxy
![Page 4: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/4.jpg)
Spring Framework Runtime
![Page 5: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/5.jpg)
Inversion of Control (IoC) – основные понятия
▪ BeanFactory и ApplicationContext▪ Bean и BeanDefinition▪ BeanFactory и FactoryBean▪ BeanFactoryPostProcessor и BeanPostProcessor
![Page 6: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/6.jpg)
Этапы инициализации контекста
Парсинг конфигурации и
создание BeanDefinition
Настройка созданных BeanDefinition
(BeanFactoryPostProcessor )
Создание бинов(BeanFactory и FactoryBean)
Настройка созданных
BeanDefinitionBeanPostProcessor
![Page 7: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/7.jpg)
Жизненный цикл бина1. Вызов default конструктора
2. Запуск autowiring3. Вызов postProcessBeforeInitialization интерфейса BeanPostProcessor4. Вызов init-method5. Вызов postProcessAfterInitialization
Приложение запущено и готово к работе
8. Вызов destroy()9. Вызов custom destroy-method
Definition
Pre-initialized
Ready
Destroyed
![Page 8: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/8.jpg)
Области видимости(scopes) бинов
▪ singleton, prototype - Spring IoC▪ request, session, global session, application -
web-aware ApplicationContext
![Page 9: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/9.jpg)
Слушатели
▪ @PostConstruct и @PreDestroy▪ BeanPostProcessor.postProcessBeforeInitialization() и
BeanPostProcessor.postProcessAfterInitialization() ▪ @EventListener
![Page 10: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/10.jpg)
(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 }
![Page 11: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/11.jpg)
Spring AOP
▪ Aspect (аспект)▪ Advice (cовет): before advice, after returning
advice, after throwing advice, after (finally) advice, around advice▪ Join point (точка соединения)▪ Pointcut (Срез)▪ Introduction (Внедрение)
![Page 12: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/12.jpg)
Spring Proxy
![Page 13: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/13.jpg)
Использованные источники
▪ 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
![Page 14: Spring 4. Part 1 - IoC, AOP](https://reader035.vdocuments.mx/reader035/viewer/2022062522/58a14f1d1a28abbe3c8b4e1f/html5/thumbnails/14.jpg)
Спасибо за внимание!