Spring Bean 라이프 사이클 설명 [코딩 예제 포함]

게시 됨: 2020-08-12

Bean은 애플리케이션의 객체입니다. 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 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

당신의 꿈의 직업에 착륙

소프트웨어 개발에서 업그레이드 및 IIIT-BANGALORE의 PG 디플로마
더 알아보기