- 이 글은 아래의 내용에서 이어지는 내용입니다.
# Bean의 생성 시점과 종료 시점의 특정 메소드 실행하기
- TestBean.java에 beanInit() , beanDestory() 메소드를 만들겠습니다. (메소드명은 마음대로 지정합니다.)
- beans.xml에서 init-method, destory-method에 TestBean.java 메소드를 명시합니다.
1. TestBean.java에 생성 메소드, 종료 메소드를 만듭니다.
- TestBean.java에 beanInit() , beanDestory() 메소드를 만들겠습니다. (메소드명은 마음대로 지정합니다.)
- beans.xml에서 init-method, destory-method에 TestBean.java 메소드를 명시합니다.
package beans;
public class TestBean {
// 생성자
public TestBean() {
System.out.println("---------------------");
System.out.println("TestBean을 생성하였습니다.");
System.out.println("---------------------");
}
// bean 생성되는 시점에서 beanInit 메소드가 실행
public void beanInit() {
System.out.println("######################");
System.out.println("bean Init 메소드르르 생성합니다");
System.out.println("######################");
}
// bean 종료되는 시점(ctx.close 되기전에)에서 beanDestory 메소드가 실행
public void beanDestory() {
System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
System.out.println("bean Destory 메소드르르 종료합니다");
System.out.println("^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
}
}
2. beanInitDestory.xml에 생성 메소드, 종료 메소드를 지정합니다.
- TestBean.java에 beanInit() , beanDestory() 메소드를 만들겠습니다. (메소드명은 마음대로 지정합니다.)
- (생성한)beansInitDestory.xml에서 init-method, destory-method에 TestBean.java 메소드를 명시합니다.
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- bean id 값으로 객체를 불러올 거라 bean id 값을 부여하였습니다. -->
<!-- init-method와 destory-method에 TestBean.java 시작, 종료 메소드를 지정합니다.-->
<bean id="test1" class="beans.TestBean"
lazy-init="true"
init-method="beanInit"
destroy-method="beanDestory"></bean>
</beans>
3. Main.java에서 bean을 가져오도록 하겠습니다.
package main;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import beans.TestBean;
public class Main {
public static void main(String[] args) {
System.out.println("-1------------");
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("config/beansInitDestory.xml");
// getBean한 순간에 init-method 메소드가 실행됩니다.
TestBean t1 = ctx.getBean("test1", TestBean.class);
// ctx.close() 전에 bean t1의 요소의 destoy-method가 실행됩니다.
ctx.close();
System.out.println("-ctx.close() 됨");
}
}
4. 실행 결과 화면.
- beanInit() , beanDestory() 실행되는 부분을 확인하시길 바랍니다.
'[Spring]' 카테고리의 다른 글
[Spring기초] 모든 Bean이 생성 시 실행되는 메소드(BeanPostProcessor) - BeanLifeCycle (0) | 2019.10.12 |
---|---|
[Spring기초] 모든 Bean 생성, 종료 메소드 실행(default-init-method, defalut-destroy-method) (0) | 2019.10.11 |
[Spring기초] Bean 생성시점, 싱글톤 문제(lazy-init, scope) (0) | 2019.10.11 |
[Spring기초] bean 생성하기(XML로 생성) (0) | 2019.10.11 |
[Spring기초] pom.xml 의존성 버전 관리(properties 사용하기) (0) | 2019.10.09 |