스프링 빈의 이벤트 라이프사이클
- 스프링 컨테이너 생성
- 스프링 빈 생성
- 의존관계 주입
- 초기화 콜백 : 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출
- 사용
- 소멸전 콜백 : 빈이 소멸되기 직전에 호출
- 스프링 종료
- 의존관계 주입이 완료 되기 전에 초기화 작업을 하면 적용이 안됌
- @Bean 등록시 ~.setxx(xx) 이런거 해주면 안들어간다는 소리
@PostContruct / @PreDestroy()
- 정상적으로 값 대입 후 출력 완료
public class NetworkClient {
private String url;
public NetworkClient() {
System.out.println("생성자 호출, url = " + url);
}
public void setUrl(String url) {
this.url = url;
}
//서비스 시작시 호출
public void connect() {
System.out.println("connect: " + url);
}
public void call(String message) {
System.out.println("call: " + url + " message = " + message);
}
//서비스 종료시 호출
public void disConnect() {
System.out.println("close + " + url);
}
@PostConstruct
public void init() {
System.out.println("NetworkClient.init");
connect();
call("초기화 연결 메시지");
}
@PreDestroy
public void close() {
System.out.println("NetworkClient.close");
disConnect();
}
}
@Configuration
static class LifeCycleConfig {
@Bean
public NetworkClient networkClient() {
NetworkClient networkClient = new NetworkClient();
networkClient.setUrl("http://hello-spring.dev");
return networkClient;
}
}
'Spring > Basic' 카테고리의 다른 글
[Basic] 웹 스코프 (0) | 2024.08.28 |
---|---|
[Basic] 빈 스코프 (0) | 2024.08.27 |
[Basic] 의존관계 주입 (0) | 2024.08.27 |
[Basic] 컴포넌트 스캔 (0) | 2024.08.27 |
[Basic] 싱글톤 컨테이너 (0) | 2024.08.27 |