Spring Bean 라이프 사이클 설명 [코딩 예제 포함]
게시 됨: 2020-08-12Bean은 애플리케이션의 객체입니다. Bean은 생성, 사용 및 목적이 끝나면 최종적으로 소멸됩니다. 이들은 스프링 라이프 사이클의 다른 단계입니다. 전체 스프링 빈 라이프 사이클은 Spring IoC(Inversion of Control) 컨테이너에 의해 감독됩니다. 그래서 이 콩을 봄 콩이라고 합니다.
원천
목차
스프링 빈의 라이프 사이클
원천
스프링 빈 라이프 사이클에서 먼저 빈이 인스턴스화됩니다. 인스턴스화 후 빈은 사용할 준비가 되기 전에 일련의 단계를 거칩니다. Bean이 더 이상 기능에 필요하지 않으면 소멸됩니다.
읽기: 초보자를 위한 18가지 신나는 봄 프로젝트 아이디어 및 주제
다음과 같은 방법으로 Spring Bean의 라이프 사이클을 제어할 수 있습니다.
- 다음을 사용하여 인스턴스화:
- InitializingBean 콜백 인터페이스.
- Bean 구성 파일의 사용자 정의 init() 메소드.
- 고유한 작업에 대한 인식 인터페이스.
- PostConstruct 및 PreDestroy 주석.
- 파괴
- DisposableBean 콜백 인터페이스
- Bean 구성 파일의 사용자 정의 destroy() 메소드.
빈의 인스턴스화
스프링 빈 라이프 사이클의 첫 번째 프로세스는 인스턴스화입니다. Bean 생성은 JAVA 또는 XML Bean 구성 파일에 있습니다. 이것은 두 가지 방법으로 수행할 수 있습니다.

그들은:
- InitializingBean 콜백 인터페이스: 이러한 방식의 인스턴스화는 afterPropertiesSet()라는 메서드에서 수행됩니다. 이 메소드는 org.springframework.beans.factory.InitializingBean 인터페이스 에 있습니다. 아래 프로그램에서 이 인터페이스를 구현하는 클래스가 생성됩니다. 이렇게 하면 생성된 클래스에서 해당 인터페이스의 afterPropertiesSet() 메서드를 사용할 수 있습니다.
다음은 이 인스턴스화 프로세스를 나타내는 프로그램입니다.
org.springframework.beans.factory.InitializingBean 가져오기;
공개 클래스 CreationBean은 InitializingBean을 구현합니다.
{
@우세하다
public void afterPropertiesSet() 예외가 발생합니다.
{
// 빈 초기화
}
}
- Bean 구성 파일에서 사용자 정의 생성 인스턴스화 방법: 이 프로세스에서 XML 기반 구성 파일이 사용됩니다. 이 파일의 Init-method는 구체적으로 인스턴스화 방법의 이름을 지정하는 데 사용됩니다. 이 메소드는 Bean 인스턴스화를 위한 클래스에서 사용됩니다. 단일 빈의 로컬 정의는 다음과 같습니다. 이런 식으로 하나의 빈을 만들 수 있습니다.
bean.xml:
<콩>
<bean id=”creatingbean” class=”com.workinginjava.work.Creatingbean”
init-method="createInit" ></bean>
</콩>
확인: 초심자를 위한 상위 7개의 흥미로운 스프링 부트 프로젝트 및 주제
다음은 beans.xml을 로드하여 이 인스턴스화 프로세스를 나타내는 프로그램입니다.
패키지 com.workinginjava.work;
공개 클래스 CreationBean
{
공개 무효 createInit()
//사용자 정의 생성된 init 메소드는 Bean의 인스턴스화에 사용됩니다.
}
인식 인터페이스: Spring Framework 인프라는 여러 인식 인터페이스를 제공합니다. 이러한 인터페이스는 생성된 빈에 특정 고유한 동작을 주입합니다.

중요한 인식 인터페이스 중 일부는 다음과 같습니다.
- BeanFactoryAware: setBeanFactory()는 객체를 생성한 빈 팩토리에 대한 액세스를 제공합니다.
- BeanNameAware: BeanNameAware 인터페이스 아래의 setBeanName() 메소드는 Bean의 이름을 제공합니다.
- ApplicationContextAware: 이 특정 인터페이스 아래의 setApplicationContext() 메소드는 빈의 ApplicationContext를 제공합니다.
PostConstruct 및 PreDestroy 주석: PostConstruct는 주석이 달린 메서드입니다. Bean 생성 후 객체를 요청하기 전에 호출됩니다. PreDestroy는 주석이 달린 메서드이기도 합니다. bean이 파괴되기 직전에 호출된다.
다음 프로그램은 주석의 사용법을 보여줍니다.
가져오기 javax.annotation.PostConstruct;
가져오기 javax.annotation.PreDestroy;
공개 클래스 BeanWork
{
@PostConstruct
공개 무효 createInit()
{
//빈(PostConstruct)의 시작
}
@PreDestroy
공개 무효 createDestroy()
{
//빈의 소멸(PreDestroy)
}
}
createInit() 및 createDestroy()는 bean의 사용자 정의 생성 시작 및 파괴 메소드입니다. 이것은 XML 빈 구성 파일을 사용하여 수행됩니다.
콩의 파괴
스프링 빈 라이프 사이클의 마지막 프로세스는 파괴 프로세스입니다. 콩을 제거하는 과정입니다. Bean 제거는 JAVA 또는 XML Bean 구성 파일에 있습니다.
이것은 두 가지 방법으로 할 수 있습니다
- DisposableBean 콜백 인터페이스: 폐기는 destroy()라는 메소드에서 수행됩니다. 이 메소드는 org.springframework.beans.factory.DisposableBean 인터페이스 에 있습니다. 아래 프로그램에서 이 인터페이스를 구현하는 클래스가 생성됩니다. 이렇게 하면 생성된 클래스에서 해당 인터페이스의 destroy() 메서드를 사용할 수 있습니다 .
다음은 이 인스턴스화 프로세스를 나타내는 프로그램입니다.
org.springframework.beans.factory.DisposableBean 가져오기 ;
공개 클래스 Destroyingbean은 DisposableBean을 구현합니다.
{
@우세하다
public void destroy() 예외가 발생합니다.
{
// 빈이 파괴됨
}
}
- Bean 구성 파일에서 사용자 정의 생성된 파괴 방법: XML 기반 구성 파일이 여기에 사용됩니다. 이 파일의 destroy-method는 특히 파괴 메소드의 이름을 지정하는 데 사용됩니다. 그런 다음 이 메소드는 Bean의 파괴를 위해 클래스에서 사용됩니다. 단일 빈의 로컬 정의와 이를 제거하는 단계는 아래에 나와 있습니다.
콩 . XML:
<콩>
<bean id=”destroyingbean” class=”com.workinginjava.work.Destroyingbean”
destroy-method="createDestroy" ></bean>
</콩>
다음은 beans.xml을 로드하여 이 파괴 프로세스를 나타내는 프로그램입니다.
패키지 com.workinginjava.work;
공개 클래스 Destroyingbean
{
공개 무효 createDestroy()
//사용자 정의 파괴 방법은 빈의 파괴에 사용됩니다.
}

스프링 빈은 특정 목적을 위해 생성됩니다. 따라서 모든 콩은 고유한 봄 수명 주기를 거칩니다. 스프링 빈 라이프사이클을 시작하고 종료하는 두 가지 방법이 있습니다. InitializingBean 및 DisposableBean 인터페이스를 사용하는 경우 코드를 Spring에 바인딩합니다. 더 나은 방법은 빈 구성 파일에서 init-method와 destroy-method를 식별하는 것입니다.
또한 읽기: 인도의 봄 개발자 급여: 신입 및 경험자용
세계 최고의 대학에서 온라인으로 소프트웨어 개발을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
마무리
스프링 빈 수명 주기에 대한 이러한 사항은 몇 가지 질문에 답할 수 있습니다. 그럼에도 불구하고 그들은 당신을 위해 새로운 것을 제기합니다 – 야심 찬 Full Stack 개발자와 스프링 프레임 워크 사용을위한 리소스는 무엇입니까? 이 분야의 범위는 무엇입니까? 그리고 가장 중요한 것은 이 영역에서 경력을 쌓는 방법은 무엇입니까?
전체 스택 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제를 제공합니다. , IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.