¿Cómo crea el contenedor IoC de Spring singletons para clases comunes?
1. Cuando el alcance del bean es un singleton, el contenedor Spring IoC solo tendrá una instancia de bean compartida y todas las solicitudes del bean, siempre que la identificación y la definición del bean coincidan, solo devolverán. la misma instancia del frijol. Nota: El alcance Singleton es el alcance predeterminado de Spring. Para definir un Bean como singleton en XML, puede configurar: lt;bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl" alcance="singleton"gt;;
2, Prototipo significa que una definición de Bean corresponde a múltiples instancias de objetos. Los beans con ámbito de prototipo hacen que se cree una nueva instancia de bean cada vez que se realiza una solicitud al bean (ya sea inyectándolo en otro bean o llamando mediante programación al método getBean() del contenedor). Como regla general, debe utilizar el alcance prototipo para beans con estado y el alcance singleton para beans sin estado;
3. La solicitud significa que la definición del bean corresponde a una instancia en una única solicitud HTTP. La solicitud HTTP tendrá su propia instancia de bean, que se crea en función de la definición del bean específico. Este alcance solo se aplica a Spring ApplicationContext basado en web. Considere la siguiente definición de Bean:
lt; bean id="loginAction" class=cn.csdn.LoginAction" alcance="request"/gt;;
4. Para cada HTTP solicitud, el contenedor Spring creará una nueva instancia de Bean basada en la definición de loginAction Bean, el contenedor Spring creará una nueva instancia de LoginAction Bean y la instancia de loginAction Bean solo es válida en la solicitud HTTP actual, por lo que puede cambiar la instancia creada según sea necesario. Estado interno, estos cambios de estado específicos de la solicitud no serán vistos por estas instancias específicas en otras solicitudes creadas a partir de la definición del bean loginAction. Cuando se complete el procesamiento de la solicitud, la instancia del bean en el alcance de la solicitud se destruirá. p>
El alcance de Bean no solo controla las diversas dependencias y valores de configuración del objeto inyectado, sino que también controla el alcance del objeto. El marco Spring admite cinco alcances, tres de los cuales solo se pueden usar en la Web. basado en Spring ApplicationContext
.