Este artigo explora principalmente o conteúdo relacionado sobre o escopo e o ciclo de vida dos feijões, como segue.
Escopo de Bean
A primavera 3 define cinco escopos para Bean, Singleton (Singleton), protótipo (protótipo), solicitação, sessão e sessão global. Os cinco escopos são explicados da seguinte forma:
1.Singleton: Modo Singleton, haverá apenas uma instância de feijão compartilhada no contêiner do COI da primavera, não importa quantos feijões se referam a ele, eles sempre apontam para o mesmo objeto. O escopo de singleton é o escopo padrão na primavera. Você também pode definir feijão como o modo Singleton e configurá -los como:
<bean id="userDao" scope="singleton"/>
2.Protótipo: Modo de protótipo. Toda vez que um protótipo definido pelo feijão é obtido através de um recipiente de mola, o contêiner criará uma nova instância do feijão. Cada instância do feijão tem seus próprios atributos e estado, e Singleton tem apenas um objeto no contexto global. Como regra geral, use o escopo do protótipo para feijões com estado de Estado e escopo de singleton para feijão sem estado.
3.Request: Em uma solicitação HTTP, o contêiner retornará a mesma instância do feijão. No entanto, um novo feijão será gerado para diferentes solicitações HTTP, e o feijão só é válido dentro da solicitação HTTP atual.
<bean id="loginAction" scope="request"/> , para cada solicitação HTTP, o contêiner de mola cria uma nova instância de acordo com a definição do feijão, e a instância é válida apenas dentro da solicitação HTTP atual e outras solicitações não podem ver a alteração no status na solicitação atual. Quando a solicitação HTTP atual terminar, a instância do feijão também será destruída.
4.Sessação: Em uma sessão HTTP, o contêiner retornará a mesma instância do feijão. Para diferentes solicitações de sessão, uma nova instância será criada e a instância do feijão é válida apenas na sessão atual.
<bean id="userPreference" scope="session"/> , o mesmo que a solicitação http, crie uma nova instância a cada solicitação de sessão e nenhum atributo é compartilhado entre diferentes instâncias, e a instância é válida apenas dentro de sua própria solicitação de sessão. Se a solicitação terminar, a instância será destruída.
5. Sessão Global: Em uma sessão HTTP global, o contêiner retornará a mesma instância do feijão, que só é válido ao usar o contexto do portlet.
O ciclo de vida de um feijão
Após a introdução do escopo dos grãos, como mencionado acima, o ciclo de vida dos feijões será explicado com base no escopo dos feijões.
Os contêineres da primavera podem gerenciar o ciclo de vida dos feijões no escopo de singleton. Nesse escopo, a primavera pode saber exatamente quando o feijão é criado, quando a inicialização é concluída e quando é destruída. Para os feijões de escopo de protótipo, a primavera é responsável apenas por criá -los. Quando o contêiner cria uma instância do feijão, a instância do feijão é entregue ao gerenciamento de código do cliente. O contêiner de primavera não rastreará mais seu ciclo de vida e não gerenciará o ciclo de vida dos feijões configurados como escopo de protótipo. A execução do ciclo de vida de um feijão na primavera é um processo muito complexo, e os leitores podem usar os métodos fornecidos pela primavera para personalizar o processo de criação do feijão. Os contêineres da primavera fazem muito trabalho antes de garantir que uma instância de feijão possa ser usada:
Resumir
O exposto acima é sobre este artigo discutindo o escopo e o ciclo de vida dos feijões na primavera. Espero que seja útil para todos. Amigos interessados podem continuar se referindo a outros tópicos relacionados neste site. Se houver alguma falha, deixe uma mensagem para apontá -la. Obrigado amigos pelo seu apoio para este site!