Análisis del diseño de contenedores de resorte

  • j3-liuliang
  • Resuma según su propio entendimiento y referencias de recursos en línea. Si hay alguna mala redacción, por favor avise

1. El contenedor en el que pensamos

En primer lugar, nuestra primera reacción es que los elementos que se pueden usar para cargar cosas se pueden llamar aplicaciones 容器. Cuando solo pensamos en esto, entonces este contenedor solo se puede usar para cargar cosas, lo cual es demasiado útil. Solo, de hecho, el contenedor que Spring piensa agrega muchas funciones adicionales al contenedor que pensamos;

A continuación se muestra una publicación sobre la definición de contenedor de la Enciclopedia Baidu

Inserte la descripción de la imagen aquí

En segundo lugar, el contenedor que Spring piensa

En mi comprensión del contenedor de Spring:

  1. Se puede utilizar para cargar los componentes más básicos (una serie de Beans)
  2. Gestión de vida a muerte de las cosas cargadas (ciclo de vida)
  3. Ensamblar los componentes de los componentes (valores de atributo, métodos de carga)

En tercer lugar, el aterrizaje del concepto de contenedor.IOC

La interfaz en Spring org.springframework.context.ApplicationContextrepresenta el contenedor IOC y es responsable de instanciar, configurar y ensamblar los beans anteriores. El contenedor habilita sus instrucciones para inicializar, configurar y ensamblar leyendo sobre qué objetos actúan los metadatos de configuración. Los metadatos de configuración se expresan en XML, anotaciones Java o código Java. Le permite expresar los objetos que componen el nivel de aplicación y las abundantes dependencias entre estos objetos.

Echemos un vistazo al diagrama de herencia del contenedor Spring:

Inserte la descripción de la imagen aquí

Cuatro, IOCyDI

4.1 IOC (Inversión de control)

Anteriormente, el usuario necesitaba crear y ensamblar el objeto B por sí mismo, pero ahora esta creación y ensamblaje se entregan al contenedor de resorte para completar, el usuario solo necesita encontrar el objeto que necesita ser utilizado en el contenedor de resorte; esto En el proceso, se invirtió el proceso de creación y ensamblaje del objeto B. Anteriormente lo controlaba el usuario. Ahora se entrega al contenedor de resorte para crear y ensamblar. El proceso de construcción del objeto se invierte, por lo que se llama inversión de control; IOC es un principio de diseño en la programación orientada a objetos, principalmente para reducir el grado de acoplamiento del código del sistema y hacer que el sistema sea fácil de mantener y expandir.

Lo anterior debe ser muy claro, es decir, los objetos que usé antes tienen que ir a nuevos por mí mismo. Ahora, si usa Spring, no necesita ir a nuevo por sí mismo, sino que vaya directamente al contenedor de Spring para obtenerlo. Solo necesita configurarlo correctamente.

关联知识:依赖倒置原则(Dependency Inversion Principle )

¿Cuál es el principio de inversión de dependencia? Supongamos que diseñamos un automóvil: primero diseñamos las ruedas, luego diseñamos el chasis de acuerdo con el tamaño de la rueda, luego diseñamos la carrocería de acuerdo con el chasis y finalmente diseñamos todo el automóvil de acuerdo con la carrocería. Aquí hay una relación de "dependencia": el automóvil depende de la carrocería, la carrocería depende del chasis y el chasis depende de las ruedas,

Inserte la descripción de la imagen aquí

** La imagen de arriba no parece estar equivocada, pero en caso de que se cambie el tamaño de la llanta, entonces se debe cambiar el sitio, se cambia el sitio, también se cambia la carrocería, se cambia toda la estructura del automóvil y la compañía de automóviles se declara en quiebra ... **

El presidente confía en el gerente general para luchar, el gerente general confía en el gerente de departamento para ganar dinero, y el gerente de departamento confía en el empleado para luchar por él ¿Qué pasa si el empleado se va? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Por el contrario ... Si la empresa de automóviles decide modificar los neumáticos, solo necesitamos cambiar el diseño de las ruedas, no el chasis, la carrocería o el diseño del automóvil.

Inserte la descripción de la imagen aquí

IOC容器的最最最最核心思想

El núcleo del pensamiento de ioc es que los recursos no son administrados por las dos partes que usan el recurso, sino por un tercero que no usa el recurso, lo que puede traer muchos beneficios.

  1. Gestión centralizada de recursos para lograr una gestión de recursos configurable y sencilla.
  2. Redujo la dependencia de las dos partes usando los recursos, que es lo que llamamos el grado de acoplamiento

Vea el diagrama a continuación:

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

4.2 DI (inyección de dependencia)

La inyección de dependencia es una forma de establecer objetos dependientes al crear objetos en el contenedor de resortes. Por ejemplo, dale a spring una lista. La lista enumera la necesidad de crear objetos B y algunos otros objetos (pueden incluir objetos dependientes en el tipo B). En este momento Cuando Spring crea el objeto B, verá de qué objetos necesita depender el objeto B, y luego averiguará si los objetos dependientes están incluidos en la lista, si los hay, los creará y luego los pasará al objeto B; Tal vez B necesite depender de muchos objetos. Antes de que se cree B, no es necesario saber si existen otros objetos o dónde están otros objetos y cómo se crean. El contenedor de resorte creará activamente objetos dependientes de B y los inyectará en B. Por ejemplo, cuando el contenedor de resorte crea B, se encuentra que B necesita depender de A, luego el contenedor de resorte encuentra la definición de A en la lista y la crea, y la inyecta en el objeto B.

De hecho, esto es fácil de entender, ¡déjame darte un ejemplo!

O el caso de alquilar una casa arriba:

Primero encuentro una casa para vivir, solicito:

  1. precio barato
  2. Transportación conveniente
  3. Independiente con cocina
  4. Totalmente amueblado
  5. 带网线通网

Pasar estos requisitos al intermediario

Luego, el intermediario busca de acuerdo con estos requisitos (Spring es crear instancias correspondientes de acuerdo con la definición) tales casas

Luego descubrí que esta casa necesita 通网(依赖)un intermediario y me comunico con la oficina comercial correspondiente.

Después de que se cumplan todos los requisitos, la casa se entregará al inquilino para completar el proceso de alquiler del cliente.

El quinto requisito del inquilino es que el intermediario que necesita inyección de dependencia debe completar los requisitos del inquilino a través del salón de negocios correspondiente.

Inserte la descripción de la imagen aquí

Observaciones finales

  • Debido a que los bloggers no tienen mucho conocimiento, inevitablemente habrá errores. Si encuentra un error o prejuicio, por favor deje un mensaje para señalarlo y lo corregiré.
  • Si cree que el artículo no es malo, su reenvío, intercambio, me gusta y comentarios son su mayor aliento.
  • Gracias por leer, bienvenidos y gracias por su atención.

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_40399646/article/details/108722025
Recomendado
Clasificación