Ciclo de vida do Spring Bean explicado [com exemplo de codificação]
Publicados: 2020-08-12Bean é um objeto em um aplicativo. Um bean é criado, usado e finalmente destruído quando seu propósito termina. Estas são as diferentes fases de um ciclo de vida da primavera. Todo o ciclo de vida do Spring Bean é supervisionado pelo contêiner Spring IoC (Inversão de Controle). É por isso que esses grãos são chamados de grãos de primavera.
fonte
Índice
O ciclo de vida de um feijão de primavera
fonte
Em um ciclo de vida de um bean de primavera, antes de tudo, um bean é instanciado. Após a instanciação, um bean passa por uma sequência de etapas antes de estar pronto para ser usado. Quando um bean não é mais necessário para nenhuma função, ele é destruído.
Leia: As 18 principais ideias e tópicos de projetos de primavera emocionantes para iniciantes
O ciclo de vida do Spring Bean pode ser controlado das seguintes maneiras
- Instanciação usando:
- Inicializando a interface de retorno de chamada do Bean.
- Método init() personalizado do arquivo de configuração do bean.
- Interfaces conscientes para ações distintas.
- Anotações PostConstruct e PreDestroy.
- Destruição
- Interface de retorno de chamada DisposableBean
- Método destroy() personalizado do arquivo de configuração do bean.
Instanciação de um bean
O primeiro processo no ciclo de vida do Spring Bean é uma instanciação. A criação de um bean se baseia no arquivo de configuração de bean JAVA ou XML. Isso pode ser feito de duas maneiras.

Eles estão:
- InitializingBean interface de retorno de chamada: A instanciação dessa maneira é feita em um método chamado afterPropertiesSet(). Este método está presente na interface org.springframework.beans.factory.InitializingBean . No programa abaixo, é criada uma classe que implementa essa interface. Isso permite usar o método afterPropertiesSet() dessa interface na classe criada.
A seguir está o programa que descreve este processo de instanciação
importar org.springframework.beans.factory.InitializingBean;
classe pública Criandobean implementa InitializingBean
{
@Sobrepor
public void afterPropertiesSet() lança Exception
{
// Bean é inicializado
}
}
- Método de instanciação criado customizado no arquivo de configuração do bean: Neste processo, um arquivo de configuração baseado em XML é usado. O método de inicialização deste arquivo é usado para nomear especificamente o método de instanciação. Este método é usado na classe para instanciação de bean. A definição local de um único bean é mostrada abaixo. Desta forma, podemos criar um único bean.
beans.xml:
<feijão>
<bean id=”creatingbean” class=”com.workinginjava.work.Creatingbean”
init-method="createInit" ></bean>
</beans>
Confira: Os 7 principais projetos e tópicos de inicialização do Spring empolgantes para iniciantes
A seguir está o programa que descreve este processo de instanciação carregando beans.xml
pacote com.workinginjava.work;
classe pública Criando bean
{
public void createInit()
//O método init criado personalizado é usado para instanciar um bean
}
Interfaces conscientes: A infraestrutura do Spring Framework fornece várias interfaces conscientes. Essas interfaces inculcam certo comportamento distinto a um bean criado.

Algumas das Interfaces Aware importantes incluem:
- BeanFactoryAware: setBeanFactory() fornece acesso à fábrica de bean que criou o objeto.
- BeanNameAware: o método setBeanName() na interface BeanNameAware fornece o nome do bean.
- ApplicationContextAware: o método setApplicationContext() nesta interface específica fornece o ApplicationContext do bean.
Anotações PostConstruct e PreDestroy: PostConstruct é um método anotado. Ele é chamado após a construção do bean e antes de solicitar um objeto. PreDestroy também é um método anotado. É chamado logo antes da destruição de um feijão.
O programa a seguir descreve o uso de anotações
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
classe pública BeanWork
{
@PostConstruct
public void createInit()
{
//Iniciação do bean(PostConstruct)
}
@PreDestroy
public void createDestroy()
{
//Destruição do feijão(PreDestroy)
}
}
O createInit() e createDestroy() são métodos personalizados de iniciação e destruição de um bean. Isso é feito usando o arquivo de configuração do bean XML.
Destruição de um feijão
O último processo no ciclo de vida do feijão de primavera é o processo de destruição. É o processo de remoção de um feijão. A remoção de um bean está no arquivo de configuração de bean JAVA ou XML.
Isso pode ser feito de duas maneiras
- Interface de retorno de chamada DisposableBean: O descarte é feito em um método chamado destroy(). Este método está presente na interface org.springframework.beans.factory.DisposableBean . No programa abaixo, é criada uma classe que implementa essa interface. Isso permite usar o método destroy() dessa interface na classe criada .
A seguir está o programa que descreve este processo de instanciação
importar org.springframework.beans.factory.DisposableBean;
classe pública Destroyingbean implementa DisposableBean
{
@Sobrepor
public void destroy() lança Exception
{
// Bean é destruído
}
}
- Método de destruição personalizado criado no arquivo de configuração do bean: o arquivo de configuração baseado em XML é usado aqui. O método destroy deste arquivo é usado para nomear especificamente o método de destruição. Este método é então usado na classe para a destruição do bean. A definição local de um único bean e as etapas para destruí-lo são mostradas abaixo.
Feijão . xml:
<feijão>
<bean id=”destroyingbean” class=”com.workinginjava.work.Destroyingbean”
destroy-method="createDestroy" ></bean>
</beans>
A seguir está o programa que descreve esse processo de destruição carregando o beans.xml:
pacote com.workinginjava.work;
classe pública Destroyingbean
{
public void createDestroy()
//O método de destruição personalizado é usado para a destruição de um bean
}

Os grãos de primavera são criados para um propósito específico. Assim, cada feijão passa por um ciclo de vida de primavera distinto. Existem duas maneiras de iniciar e terminar o ciclo de vida do feijão de primavera. Se as interfaces InitializingBean e DisposableBean forem usadas, ele vinculará o código ao Spring. Uma maneira melhor é identificar o método init e o método destroy no arquivo de configuração do bean.
Leia também: Salário de desenvolvedor da primavera na Índia: para calouros e experientes
Aprenda Desenvolvimento de Software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.
Empacotando
Esses pontos sobre o ciclo de vida do feijão da primavera podem responder a algumas perguntas. Ainda assim, eles levantam novos para você – Quais são os recursos para um aspirante a desenvolvedor Full Stack e o uso do framework spring? Qual é a abrangência neste campo? E, mais importante, como construir uma carreira neste domínio?
Se você estiver interessado em aprender mais sobre desenvolvimento full-stack, confira o PG Diploma in Full-stack Software Development da upGrad & IIIT-B, projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, mais de 9 projetos e atribuições , IIIT-B Alumni status, projetos práticos práticos e assistência de trabalho com as principais empresas.