Java/Spring
Spring - Java를 이용한 init-method, destroy-method
soksok
2020. 8. 19. 22:17
반응형
Java 파일을 이용하여 빈을 설정 할 때 xml에서 쓰던 것과 마찬가지로 init-method, destroy-method를 설정 가능하다.
다음과 같은 TestBean1 클래스가 있다.
public class TestBean1 {
public TestBean1() {
System.out.println("TestBean1");
}
public void init() {
System.out.println("init");
}
public void destroy() {
System.out.println("destroy");
}
}
기존의 xml에서 init,destroy를 설정하기 위해서는 아래와 같이 작성했다.
<bean id="t1" class="cookingcoding.beans.TestBean1" lazy-init="true" init-method="init" destroy-method="destroy"/>
해당 빈 객체가 생성되면서 init 메소드가 호출되고, 해당 빈 객체가 사라질 때 destroy 메소드가 호출된다.
Java 파일에서 해당 기능을 설정하기 위해서는 아래와 같이 적어준다.
@Configuration
public class beanconfig {
@Bean(initMethod = "init",destroyMethod = "destroy")
public TestBean1 java1() {
TestBean1 t1 = new TestBean1();
return t1;
}
}
@Bean의 ()내부에 선언함으로 같은 기능이 적용 가능하다.
public class MainClass {
public static void main(String[] args) {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("cookingcoding/config/beans.xml");
TestBean1 t1 = ctx.getBean("t1",TestBean1.class);
ctx.close();
AnnotationConfigApplicationContext ctx2 = new AnnotationConfigApplicationContext(beanconfig.class);
TestBean1 t2 = ctx2.getBean("java1",TestBean1.class);
ctx2.close();
}
}
반응형