Beans

omo falamos acima, Beans são objetos instanciados, montados e gerenciados por um container do Spring através da Inversão de Controle e Injeção de Dependências.

Assim como um container, um Bean também tem o seu ciclo de vida. Ele é iniciado e criado pelo container, as dependências desse Bean são injetadas, o metodo de inicialização é chamada e então, o bean é enviado para o cliente, no caso a classe que possui essa dependência. Ele será utilizado e descartado.

Em suma, usando o exemplo acima, quando o container é instanciado ele cria uma instância da classe B, chama o construtor da classe A para injetar esse bean e em seguida, a classe A utiliza esse Bean através de b.metodoB().

Após isso, esse Bean é descartado quando não mais utilizado e tal ciclo pode ser visualizado abaixo.

O ciclo de vida de um bean depende do seu escopo, que pode ser determinado no Spring através da anotação @Scope. Os tipos de escopos do Spring utilizados para web são:

  • Singleton - O container irá criar uma única instância desse bean e será utilizada para todas as solicitações da instância;

  • Prototype - O container irá criar várias instâncias, uma para cada solicitação;

  • Request - Terá uma instância criada para cada requisição HTTP;

  • Session - Terá a sua instãncia preservada e utilizada para solicitações enquanto durar a sessão.

Atualizado