작성
·
422
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
설정정보로 등록하면 외부라이브러리에도 초기화, 종료메서드를 적용할 수 있다는 것은 이해가 되었는데요.
그 외에는 외부라이브러리에 적용할수 없다는 말이 무슨 의미인지 잘 모르겠습니다. 질문을 여럿 찾아봤는데 질문이 조금 달라서..해결이 안됬네요
DB커넥션 예를 들면, 초기화, 종료 메서드를 단순히 애노테이션(@PostConstruct, @PreDestroy)이 등록된 메서드안에서 호출하면, 그 안에서 호출된 여러 라이브러리 메서드처럼 결국엔, 굳이 설정정보사용안하고도 사용할수 있다(적용할수 있다)고 볼수 있는거 아닌가라고 생각이 듭니다.
제가 지금 잘못 이해한거 같긴한데, 어디 부분을 잘못 이해해서 이런 생각을 하는건지 잘 모르겠습니다.
답변 1
0
특정 객체(NetworkClient)로 init, destory를 wrapping 하지 않고 외부 라이브러리로부터 객체를 생성해야 하는 경우에는 코드 수정이 어려우므로 빈 설정을 통해 진행해야 합니다.
@Configuration
public class BeanConfig {
@Bean(initMethod = "externalLibraryInit", destoryMethod = "externalLibraryDestory")
public ExternalLibraryObject externalLibraryObject() {
return new ExternalLibraryObject();
}
}
네 어느정도 이해는 되었는데요.
외부라이브러리 메서드 초기화, 해제 적용시 빈 설정을 써야할 이유를 잘 모르겠습니다.
애노테이션이 선언된 메서드 안에서
외부라이브러리의 메서드 connect, close들을 직접 호출하면 되지 않나요?