1. Servlet 생명주기
Init > Service(get/post) > Destory
https://minwan1.github.io/2017/10/08/2017-10-08-Spring-Container,Servlet-Container/
https://javannspring.tistory.com/231
2. BeanFactory 와 ApplicationContext 구조
https://whiteship.tistory.com/518
BeanFactory 를 ListenableBeanFactory, HierachialBeanFactory가 구현
ListenableBeanFactory, HierachialBeanFactory를 ApplicationContext가 구현
XmlWebApplicationContext, FileSystemXmlApplicationContext, ClassPathXmlApplicationContext 등이ApplicationContext 구현
3. 객체 생성의 차이
ApplicationContext 는 Bean을 preload.
BeanFactory getBean 은 lazy
4. Init/Destroy Method 지정 방법
Init 지정 방법
https://www.baeldung.com/running-setup-logic-on-startup-in-spring
1. @PostConstruct 사용
2. InitializingBean Interface 구현, afterPropertiesSet() 사용
3. ApplicationListener<ContextEvt> 구현
4. @Bean InitMethod 사용
순서 : @PostConstruct > InitializingBean > init-method > ContextStartedEvent
https://programmer.ink/think/5ddc351b29481.html
Destory 지정 방법
https://www.baeldung.com/spring-shutdown-callbacks
1. @PreDestroy 사용
2. DisposableBean Interface 구현, Destroy() 사용
3. ApplicationListener<ContextEvt> 구현
4. ServletContetListener 구현 (web.xml 등록)
5. @Bean destroyMethod 사용
순서 : ContextClosedEvent > @PreDestroy > DisposableBean > destroy-method
https://programmer.ink/think/5ddc351b29481.html
※ Init 은 Order @DependOn 등을 사용하여 주입 순서를 지정 할 수 있음
※ Bean Destroy 는 Bean Init 의 역순으로 이루어짐
'back > Spring Framework' 카테고리의 다른 글
@Transactional Propagation (전파속성), Isolation (격리수준레벨) 그리고 synchronized (0) | 2020.04.17 |
---|---|
[Spring Quartz] Batch Job 중지 시키기 : JobOperator, Stop, StoppableTasklet (0) | 2020.04.14 |
@Autowired @Resource @Inject Bean 탐색 기준 (0) | 2020.02.27 |
redirect, forward 차이 및 redirect 시 attribute 전달 방법 (0) | 2020.01.06 |
[Spring Fw] 스프링프레임워크에서 JUnit 을 이용한 API 테스트 : Spring Framework + JUnit + JNDI (0) | 2019.12.30 |