Diseño de interfaz del contenedor Spring IOC
La siguiente es una introducción detallada a la relación de interfaz en la figura.
- Desde la interfaz
BeanFactory
aHierarchicalBeanFactory
y, a continuaciónConfigurableBeanFactory
es un importanteBeanFactory
camino diseño, este diseño de la interfaz en la trayectoriaBeanFactory
define especificaciones contenedores básicos COI. En esta definición de interfaz,getBean()
se incluyen los métodos básicos de dicho contenedor IOC. Una vez que laHierarchicalBeanFactory
interfaz hereda laBeanFactory
interfaz, lagetParentBeanFactory()
función de interfaz agregada habilitaBeanFactory
la función de administración del contenedor IOC principal. La siguienteConfigurableBeanFactory
interfaz define principalmente algunasBeanFactory
funciones de configuración, como lasetParentBeanFactory()
configuración del contenedor IOC principal, laaddBeanPostProcessor()
configuración del procesamiento posterior del bean, etc. La superposición de estos diseños de interfaz define lasBeanFactory
funciones básicas de un contenedor IOC simple. - El segundo diseño de la interfaz principal del
ApplicationContext
contexto de aplicación como el diseño de la interfaz principal, el diseño de interfaces están involucrados aquí, deBeanFactory
laListableBeanFactory
continuaciónApplicationContext
y luego usamosWebApplicationContext
oConfigurableApplicationContext
interfaz. Nuestro contexto de aplicación de uso común es básicamente la realización deConfigurableApplicationContext
oWebApplicationContext
. En este sistema de interfaz,ListableBeanFactory
yHierarchicalBeanFactory
conectado a una interfaz,BeanFactory
la definición de interfaz de la conexión yApplicationContext
la definición de interfaz. En elListableBeanFactory
refinado interfaz muchoBeanFactory
de funciones de interfaz, tales como la definición delString[] getBeanDefinitionNames()
método de interfaz,HierarchicalBeanFactory
como ya se mencionó es aumentar los padres funcionalidad COI,ApplicationContext
interfaz, a través de la herenciaMessageSource
,ResourceLoader
,ApplicationEventPublisher
la interfaz, laBeanFactory
base de recipientes simples COI en la adición de una serie de Soporte para funciones avanzadas de contenedores. - La relación de interfaz principal implicada aquí, y el contenedor IOC específico se implementa bajo este sistema de interfaz, por ejemplo
DefaultListableBeanFactory
, la implementación de este contenedor IOC básico se realizaConfigurableListableBeanFactory
, convirtiéndose así en un contenedor IOC simple. Al igual que otros contenedores IOC, por ejemploXmlBeanFactory
, todos se basanDefaultListableBeanFactory
en extensiones, y lo mismoApplicationContext
ocurre con la implementación. - Este sistema se basa en la interfaz
BeanFactory
yApplicationContext
el núcleo. YBeanFactory
es la interfaz más sencilla de contenedores COI enApplicationContext
el diseño, por un lado, se puede ver que se heredaBeanFactory
la interfaz en el sistemaListableBeanFactory
,AutowrieCapableBeanFactory
,HierarchicalBeanFactory
y otraBeanFactory
interfaz con lasBeanFactory
funciones básicas de los envases de la COI; por el contrario, mediante la integraciónMessageSource
,ResourceLoader
,ApplicationEventPublisher
éstos Interfaz,BeanFactory
paraApplicationContext
dar características de contenedor IOC más avanzadas. ParaApplicationContext
laWebApplicationContext
interfaz utilizada en el entorno web también está diseñado .
El diseño del enlace central del contenedor IOC es el siguiente: