[Spring] 빈 생명 주기 콜백을 위한 방법1 - Spring의 인터페이스를 활용한 InitializingBean, DisposableBean에 대한 나름의 이해

2023. 10. 27. 15:48Spring

InitializingBean과 DisposableBean을 활용해서 빈의 생명주기 콜백을 구현할 수 있다.

InitializingBean은 afterPropertiesSet()을

DisposableBean은 destroy()를

override해주면 된다.

 

이건 초창기에 나온 것이고 지금은 더 나은 방법들이 있어서 사용되지 않는다.

단점은 다음과 같다.

1. 내 코드가 스프링 인터페이스에 의존하게 된다. (이게 왜 단점이지?)

2. 이름을 바꿀 수 없다.

3. 내가 코드를 바꿀 수 없는 외부라이브러리에 적용할 수 없다.

 

3번의 경우 이 빈이 초기화되거나 끝나면 콜백을 하는 위의 함수들을 넣어주어야 하는데 이걸 못바꾸면 할 수가 없다는 이야기이다.

1번의 이게 왜 단점이지?에 대한 답변은 인터페이스를 구현하는 것이다보니 스프링 코드가 변경되면 내 코드도 그에 맞게 변경되어야 할 수 있기 때문이다. 코드 레벨로 인터페이스를 가져오는건 부담이 된다. 만약 import해야 하는 path가 바뀌게 되면 다 바꿔줘야 할 것이다. 또한 스프링이 없으면 동작할 수 없게 된다.

 

Reference


https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55384

 

학습 페이지

 

www.inflearn.com