-
대체로 프로그램들은 유기적으로 서로 작동하기에 생명주기를 갖고 있다.
리액트에서 봤던 그 생명주기
스프링에서도 스프링 컨테이너나 빈 객체에서 생명주기를 알 수 있다.
1. 스프링 컨테이너의 생명주기
생성부터 소멸까지의 단계로 표현할 수 있는데
우선,
스프링 컨테이너를 생성하는 순간 bean객체를 생성할 수 있는 컨테이너가 만들어 지는 것이다.
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationCtx.xml");
로 classpath로 스프링 설정 파일을 받아와서 하나의 컨테이너를 생성하는 것부터 단계가 시작된다.
그리고 getBean()메서드를 통해서 빈 객체를 이용한다.
예를 들어서
CarService carService = ctx.getBean("carService",CarService.class);
처럼 getBean()메서드로 스프링 컨테이너의 bean객체를 불러서 사용한다.
사용 후에는 close()메서드로 컨테이너를 종료하면 스프링 컨테이너의 생명주기를 표현할 수 있다.
2. 빈(Bean)객체의 생명주기
빈 객체의 생명주기는 스프링 컨테이너의 생명주기와 같다
그 이유는 빈 객체라는 것이 스프링 컨테이너에서 생성되기 때문이다.
InitializingBean, DisposableBean 인터페이스를 사용하여 생명주기를 알아볼 수 있다.
위와 같이 인터페이스를 만들고 Bean객체 생성시점에 afterPropertiesSet() 메서드와 destroy()메서드를 사용하면 된다.
예를 들어서 하나의 기능을 클래스로 initializingBean과 DisposableBean을 인터페이스로 받겠다.
public class CarService implements InitializingBean, DisposableBean{
@Autowired
private CarDao cardao;
public CarService () {
}
public void Service(Car car){
cardao.insert(car)
}
@override
public void afterPropretiesSet() throws Exception{
// InitializingBean //}
@override
public void destroy() throws Exception{
//DisposableBean//
}
}
}
으로 인터페이스를 받아서 추상메서드로 구현코드를 만든다.
3. init-method, destory-method 속성을 사용하여 생명주기를 알아보기
생성과 소멸을 각각의 메서드를 사용해서 사용할 수 있다.
스프링 컨테이너에서
<bean id = CarService" class="com.brms.car.service.carService"
init-method="initMethod" destry-method="destroyMethod"/>
로 init-method, destory-method를 추가해서 java 파일에서
메서드로
public void initmethod(){
// 생성 시점 //
}
public void destroyMethod(){
//소멸 시점//
}
를 입력하여 생성시점과 소멸시점을 표현할 수 있다 .
'JSP&스프링 > 스프링 키포인트' 카테고리의 다른 글
[스프링] 스프링 MVC의 정의와 순서 그리고 Controller와 view의 설정 방식 정리하기 (0) 2023.01.29 [스프링] @Configuration & @Bean 애노테이션의 정의와 예시문 정리하기 (0) 2023.01.28 [스프링] @Autowired로 의존 객체를 선택해야 하는 경우의 방법과 특징 정리하기 (0) 2023.01.28 [스프링] 의존 객체를 자동으로 주입해주는 애노테이션 => @Autowired, @Resource의 정의와 특징 정리하기 (0) 2023.01.28 [스프링] DI 의존주입의 정의와 의존객체를 주입하는 다양한 방법에 대해서 정리하기 (0) 2023.01.27 댓글