Beans
Atualizado
Atualizado
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.