반응형
초기화와 소멸 메소드
: IoC 컨테이너가 Bean 객체를 생성할 때 bean 초기화가 필요하면 initMethod를 설정하고,
IoC 컨테이너가 Bean 객체를 소멸시킬 때 자원 반납 등의 처리가 필요하면 destroyMethod를 설정함.
1. inti 메소드와 distory메소드에 사용할 출력문 작성하기
2. inimtMethod 와 destoryMethed 설정하기
(1) 빈 등록시 설정하기
@Bean(initMethod =" ", destroyMethod = " " ) 출력할메소드이름을 값으로 설정
@Bean(initMethod = "openShop", destroyMethod = "closeShop")
public Owner owner() {
return new Owner();
}
(2) PostConstruct와 @PreDestroy로 설정하기
@Component
public class Owner {
init-method와 같은 설정 어노테이션
@PostConstruct
public void openShop() {
System.out.println("사장님이 가게 문을 오픈했습니다. 이제 쇼핑을 하실 수 있습니다.");
}
destroy-method와 같은 설정 어노테이션
@PreDestroy
public void closeShop() {
System.out.println("사장님이 가게 문을 닫았습니다. 이제 쇼핑을 하실 수 없습니다.");
}
}
3. 강제로 컨테이너를 종료 시키는 메소드를 호출
: 가비지 컬렉터에서 해당 빈을 메모리에서 지울 때 destoryMethod가 동작하게 되는데
현재 예시에서는 메모리에서 지우기 전에 main 메소드의 프로세스가 종료 되어서 호출되고 있지 않으므로
강제로 컨테이너를 종료 시키는 메소드를 호출하여 폐기 메소드가 동작하게함.
((AnnotationConfigApplicationContext)context).close();
4. 초기화와 소멸 확인
반응형
'프로그래밍 > Spring & Spring boot' 카테고리의 다른 글
14 Spring : @Pointcut 어노테이션 표현식 (0) | 2022.09.02 |
---|---|
13 Spring : AOP 개념 정리 (0) | 2022.09.02 |
11 Spring : MessageSource를 통한 다국어 처리하는 방법 (1) | 2022.09.02 |
10 Spring : properties 사용 (1) | 2022.09.02 |
09 Spring : @Scope("prototype") (0) | 2022.09.01 |