콜백 문자 서비스 아톡 PR 메시지 앱 사용법
페이지 정보

본문
빈 콜백 등록 초기화, 소멸 메서드에 대해 알아보자콜백 기능의 필요성 먼저 빈 생명주기 콜백의 필요성에 대해 간단히 설명을 해보자면데이터베이스 커넥션 풀이나 네트워크 소켓처럼 애플리케이션 시작 시점에서 필요한 커넥트를 미리 해주고애플리케이션 종료 시점에서 모든 연결을 종료하는 상황에 필요하다. 만약 그렇지 않으면 원인을 찾기 힘든 콜백 상황을직면할수 있다.스프링 빈의 라이프 사이클스프링 자동주입일경우 빈의 라이프 사이클에 대해 좀 알아볼 필요가 있는데스프링 컨테이너 생성 ->스프링 빈 생성 ->의존관계 주입 ->초기화 콜백 ->사용 ->소멸전 콜백 ->스프링 종료위와같은 순서로 빈의 라이프 사이클이 돌아간다. 지금 알아볼건 위의 초기화 콜백, 소멸전 콜백 두가지를 콜백 설정하는 방법에 대해 알아볼거다.들어가기 이전에 다시한번 잡고가야할 개념은초기화 시작은 의존관계 주입이 끝나는 시점이다.빈이 종료되는 시점은 서버 종료 or context.close() 호출이 될 경우이다.방법 1. (비추천) 인터페이스를 통해 등록하는 방법인터페이스를 통해 콜백 메서드를 지정할수 있다.초기화 시작 method :InitializingBean종료 직전 method :DisposableBean적용 예시위와같이 그렇게 콜백 어렵지 않은 방법으로 사용이 가능하나 이는 인터페이스에 의존적이고 보다시피 외부 라이브러리에 사용하기에는 조금 제한이 있으며 이후 방법보다 코드를 더 작성해야하는 단점이 있다. 또한 대략 2003년 에 나온 20년도 더 넘은 기술이기에 이후 방법을 추천한다.방법 2. (2순위) @Bean 속성을 통해 등록하는 방법@Bean 콜백 어노테이션에 속성을 사용하여 적용하는 예시이다.적용예시설정 정보에 @Bean(initMethod =init, destroyMethod Ϝlose) 처럼 초기화, 소멸 메서드를 지정할수 있으며 메서드 이름을 자유롭게 지정할수 있는 장점이 있고 스프링 빈이 스프링 코드에 의존적이지 않다는 장점이 있다. 그리고 코드가 아닌 설정정보를 사용하기 때문에 코드를 고칠수 없는 외부 콜백 라이브러리에도 초기화, 종료 메서드를 적용 가능하다.★@Bean destroyMethod 속성의 기본값근데 여기서 한가지 알고가야하는 지식은 @Bean 어노테이션 destroyMethod 속성의 기본값이다.기본값을 코드형태로 보자면위와같이 되어있다. 즉 추론이라는 뜻이다.이는 외부 라이브러리에서 주로 사용하는 close나 shutdown 이라는 이름의 메서드를 자동으로 호출해 준다. 그로인해 destroyMethod=(inferred)"와같이 기본값이 세팅되어있다.방법 3. 콜백 (1순위) 어노테이션을 통해 등록하는 방법다른 어노테이션을 통해 콜백 메서드를 지정할수 있다.초기화 시작 method :@PostConstruct종료 직전 method :@PreDestory적용 예시위와같이 어노테이션 하나로 간단하게 콜백 메서드를 지정할수 있다.그런데 한가지 짚고가야하는 지식은 위에 패키지명을 보면 알다시피 이는 spring 어노테이션이 아닌 jakarta 어노테이션이다. 그렇기에 이는 스프링 콜백 컨테이너뿐만 아니라 그외에서도 사용이 가능하다. 그리고 컴포넌트 스캔과 매우 궁합이 좋다.그러나 단점으로는 외부 라이브러리에는 코드수정이 불가하기에 적용이 안된다. 이럴 경우에는 위에 @Bean에 속성을 붙여 사용하는 방법을 채용해야만 한다.결론1. @PostConstruct, @PreDestory 어노테이션을 사용하자2. 코드를 고칠 수 없는 외부 라이브러리를 초기화, 종료해야 하면 콜백 @Bean 의 initMethod, destroyMethod 속성을 사용하자
- 이전글휴대폰 싸게사는법 핸드폰 성지 시세표 보는법 25.05.21
- 다음글[강릉] 파란약국 25.05.21
댓글목록
등록된 댓글이 없습니다.