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. 객체 생성의 차이

https://otep.tistory.com/19

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 의 역순으로 이루어짐

 

 

반응형

+ Recent posts