Según The IoC Container, Spring puede gestionar una jerarquía de contextos o una jerarquía de contenedores y luego usar el <ref parent="beanId"/>
para referirse a un bean en un contexto principal. ¿Qué mecanismo usa Spring para crear esta jerarquía de contenedores? ¿Se puede usar el comando <import resource="application-context.xml"/>
para crear esta jerarquía? Proporcione un ejemplo de un contexto de aplicación que forme una jerarquía.¿Cómo crea Spring un contexto de aplicación o una jerarquía de contenedor?
Respuesta
La jerarquía de contexto de la aplicación se crea automáticamente; por ejemplo, cada aplicación Spring MVC crea un contexto separado para cada DispatcherServlet. Este contexto es un elemento secundario de un contexto de padres común. De esta forma, cada contexto secundario puede acceder a beans desde el contexto primario, pero no al revés. También los contextos de hermanos están separados e invisibles el uno para el otro.
Puede crear jerarquía de contexto manualmente para proporcionar un nivel más fino de granularidad en su proyecto. Esto se puede lograr, p. usando varios constructores de ClassPathXmlApplicationContext
.
<import>
constructo combina frijoles del archivo importado, por lo que es una forma de dividir físicamente definiciones de beans en varios archivos, pero todos terminan en un contexto. Por cierto, es una pena que no haya una etiqueta XML para definir el archivo de contexto secundario (?)
- 1. Jerarquía de contexto de primavera con contexto de aplicación web
- 2. ¿Cuál es la diferencia entre un contexto de aplicación Spring y un contenedor Spring?
- 3. Cómo declarar un contexto de aplicación principal
- 4. ¿Cómo se configura un contenedor de bean Spring para cargar un archivo de propiedades Java?
- 5. JUnit corredor personalizado con contexto de aplicación Spring
- 6. Java: Spring security 3 Jerarquía de roles
- 7. Pasando propiedades a un contexto Spring
- 8. java.lang.ExceptionInInitializerError Excepción al crear contexto de aplicación en Spring
- 9. ¿Cómo se traducen las asignaciones de clase Hibernate a un contexto de aplicación Spring?
- 10. Uso de Spring Validator fuera del contexto de Spring MVC
- 11. Inyectar una propiedad externa en el contexto de Spring
- 12. ¿Cómo se crea un proyecto Spring MVC en Eclipse?
- 13. Cómo iniciar un intento si el contexto no es Contexto de actividad sino contexto de aplicación
- 14. Cómo pasar un contexto de actividad en una aplicación a un servicio en una otra aplicación
- 15. Configurar un proxy HTTP en una aplicación web de Spring
- 16. Crea automáticamente clases de contenedor C# alrededor de procedimientos almacenados
- 17. ¿Application.Restart() crea un nuevo proceso para la aplicación o no?
- 18. contexto de la aplicación SharedPreferences frente al contexto de actividad
- 19. ¿Hay alguna manera de cargar un contexto de aplicación utilizando una implementación personalizada de BeanWrapper?
- 20. haciendo una aplicación Java de un solo contenedor
- 21. Spring 3 - Comprobación de un controlador de @Autowired servlet Contexto
- 22. cómo excluir un contenedor externo mientras se crea el archivo jar ejecutable en eclipse o línea de comando?
- 23. ¿Cómo extender listas y mapas ya definidos en el contexto de la aplicación Spring?
- 24. Cómo agregar un gancho al evento de inicialización del contexto de la aplicación?
- 25. ¿Cómo puedo agrupar una aplicación Spring mvc?
- 26. cuando se crea una instancia de un bean de resorte
- 27. Cómo tender un puente sobre eventos contexto de aplicación de primavera a otro contexto
- 28. ¿Cómo implementar una aplicación de integración de Spring en Tomcat?
- 29. Agregar bean mediante programación al contexto de la aplicación web de Spring
- 30. Configuración de transacción para el contexto configurado de Spring Java
Sí, estoy de acuerdo en que Spring tenía una etiqueta XML para los archivos de contexto de bean que podría definir un archivo de contexto secundario. –
Veo lo que quiere decir acerca de cómo los constructores 'ClassPathXmlApplicationContext' determinan la jerarquía de contexto. Este enfoque me parece bastante incómodo o al menos asimétrico para los archivos contenedores de frijoles. ¿La idea es desacoplar los contenedores de frijoles unos de otros, excepto a través de la clase 'ClassPathXmlApplicationContext'? –
Si se acostumbró a los contenedores de servlets que inician automáticamente el contexto de la aplicación, usar 'ClassPathXmlApplicationContext' parece incómodo, pero es la única forma de crear un elemento secundario explícitamente (otro es usar Spring MVC). No tengo conocimiento de otras formas de crear contextos secundarios de forma menos manual (declarativa). –