SlideShare a Scribd company logo
1 of 14
Накрайников Олег
uchonyy@gmail.com
Spring 4. Part 1
Java. The well-known and not well-known
IoC, AOP
Пролог. А что если скоро наступит
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
(BeanFactoryPostProce
ssor )
Создание бинов
(BeanFactory и
FactoryBean)
Настройка
созданных
BeanDefinition
BeanPostProcessor
Жизненный цикл бина
1. Вызов default конструктора
2. Запуск autowiring
3. Вызов
postProcessBeforeInitialization
интерфейса BeanPostProcessor
4. Вызов init-method
5. Вызов
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
Спасибо за внимание!

More Related Content

Viewers also liked

Java persistence api
Java persistence api Java persistence api
Java persistence api Luis Goldster
 
20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_orm20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_ormKenan Sevindik
 
Cassandra for mission critical data
Cassandra for mission critical dataCassandra for mission critical data
Cassandra for mission critical dataOleksandr Semenov
 
DBM專案環境建置
DBM專案環境建置DBM專案環境建置
DBM專案環境建置Guo Albert
 
Get the Most out of Testing with Spring 4.2
Get the Most out of Testing with Spring 4.2Get the Most out of Testing with Spring 4.2
Get the Most out of Testing with Spring 4.2Sam Brannen
 
Spring.Boot up your development
Spring.Boot up your developmentSpring.Boot up your development
Spring.Boot up your developmentStrannik_2013
 
Google Web Toolkit: a case study
Google Web Toolkit: a case studyGoogle Web Toolkit: a case study
Google Web Toolkit: a case studyBryan Basham
 
Introduction To Spring
Introduction To SpringIntroduction To Spring
Introduction To SpringIlio Catallo
 
C# Variables and Operators
C# Variables and OperatorsC# Variables and Operators
C# Variables and OperatorsSunil OS
 
Java Persistence API
Java Persistence APIJava Persistence API
Java Persistence APIIlio Catallo
 

Viewers also liked (20)

Java 8. Lambdas
Java 8. LambdasJava 8. Lambdas
Java 8. Lambdas
 
Java persistence api
Java persistence api Java persistence api
Java persistence api
 
Gradle - Build System
Gradle - Build SystemGradle - Build System
Gradle - Build System
 
20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_orm20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_orm
 
Java Persistence API
Java Persistence APIJava Persistence API
Java Persistence API
 
Spring Boot Update
Spring Boot UpdateSpring Boot Update
Spring Boot Update
 
Cassandra for mission critical data
Cassandra for mission critical dataCassandra for mission critical data
Cassandra for mission critical data
 
Java persistence api 2.1
Java persistence api 2.1Java persistence api 2.1
Java persistence api 2.1
 
JPA For Beginner's
JPA For Beginner'sJPA For Beginner's
JPA For Beginner's
 
Second Level Cache in JPA Explained
Second Level Cache in JPA ExplainedSecond Level Cache in JPA Explained
Second Level Cache in JPA Explained
 
DBM專案環境建置
DBM專案環境建置DBM專案環境建置
DBM專案環境建置
 
Get the Most out of Testing with Spring 4.2
Get the Most out of Testing with Spring 4.2Get the Most out of Testing with Spring 4.2
Get the Most out of Testing with Spring 4.2
 
JPA - Beyond copy-paste
JPA - Beyond copy-pasteJPA - Beyond copy-paste
JPA - Beyond copy-paste
 
Spring Data Jpa
Spring Data JpaSpring Data Jpa
Spring Data Jpa
 
Spring.Boot up your development
Spring.Boot up your developmentSpring.Boot up your development
Spring.Boot up your development
 
Google Web Toolkit: a case study
Google Web Toolkit: a case studyGoogle Web Toolkit: a case study
Google Web Toolkit: a case study
 
Spring
SpringSpring
Spring
 
Introduction To Spring
Introduction To SpringIntroduction To Spring
Introduction To Spring
 
C# Variables and Operators
C# Variables and OperatorsC# Variables and Operators
C# Variables and Operators
 
Java Persistence API
Java Persistence APIJava Persistence API
Java Persistence API
 

Spring 4. Part 1 - IoC, AOP