NetworkClient.java
public class NetworkClient {
...
...
@PostConstruct
public void init() {
System.out.println("NetworkClient.init");
connect();
call("초기화 연결 메시지");
}
@PreDestroy
public void close() {
System.out.println("NetworkClient.close");
disconnect();
}
}
BeanLifeCycleTest.java
public class BeanLifeCycleTest {
@Test
public void lifeCycleTest() {
ConfigurableApplicationContext ac = new AnnotationConfigApplicationContext(LifeCycleConfig.class);
NetworkClient client = ac.getBean(NetworkClient.class);
ac.close();
}
@Configuration
static class LifeCycleConfig {
@Bean
public NetworkClient networkClient() {
NetworkClient networkClient = new NetworkClient();
networkClient.setUrl("<http://localhost>");
return networkClient;
}
}
}
javax.annotation.PostContruct
이다. 스프링에 종속적인 기술이 아니라 JSR-250 이라는 자바 표준이다. 따라서 스프링이 아닌 다른 컨테이너에서도 동작한다.