14
Накрайников Олег [email protected] Spring 4. Part 1 Java. The well-known and not well-known IoC, AOP

Spring 4. Part 1 - IoC, AOP

Embed Size (px)

Citation preview

Page 1: Spring 4. Part 1 - IoC, AOP

Накрайников Олег[email protected]

Spring 4. Part 1

Java. The well-known and not well-known

IoC, AOP

Page 2: Spring 4. Part 1 - IoC, AOP

Пролог. А что если скоро наступит spring?

Page 3: Spring 4. Part 1 - IoC, AOP

О чем поговорим сегодня

▪ IoC принцип▪ Beans life cycle▪ AOP▪ Spring proxy

Page 4: Spring 4. Part 1 - IoC, AOP

Spring Framework Runtime

Page 5: Spring 4. Part 1 - IoC, AOP

Inversion of Control (IoC) – основные понятия

▪ BeanFactory и ApplicationContext▪ Bean и BeanDefinition▪ BeanFactory и FactoryBean▪ BeanFactoryPostProcessor и BeanPostProcessor

Page 6: Spring 4. Part 1 - IoC, AOP

Этапы инициализации контекста

Парсинг конфигурации и

создание BeanDefinition

Настройка созданных BeanDefinition

(BeanFactoryPostProcessor )

Создание бинов(BeanFactory и FactoryBean)

Настройка созданных

BeanDefinitionBeanPostProcessor

Page 7: Spring 4. Part 1 - IoC, AOP

Жизненный цикл бина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

Области видимости(scopes) бинов

▪ singleton, prototype - Spring IoC▪ request, session, global session, application -

web-aware ApplicationContext

Page 9: Spring 4. Part 1 - IoC, AOP

Слушатели

▪ @PostConstruct и @PreDestroy▪ BeanPostProcessor.postProcessBeforeInitialization() и

BeanPostProcessor.postProcessAfterInitialization() ▪ @EventListener

Page 10: Spring 4. Part 1 - IoC, AOP

(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

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

Spring Proxy

Page 13: Spring 4. Part 1 - IoC, AOP

Использованные источники

▪ 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

Спасибо за внимание!