Conozca el contenedor SpringIOC

Tabla de contenido

1. Marco de primavera

2. Contenedor SpringIOC

3. Funciones principales de SpringIoc


1. Marco de primavera

1.La relación entre SpringFrameWork y Spring

SpringFrameWork es la implementación básica de SpringCould, SpringMVC y otras tecnologías, y todas las tecnologías SpringCloud, SpringFrameWork, SpringMVC y otras se combinan para formar la familia Spring.

 Hablando en general:

  1. Spring en un sentido amplio se refiere a la pila de tecnología Spring basada en Spring Framework.
  2. Después de más de diez años de desarrollo, Spring ya no es un simple marco de aplicación, sino que se ha convertido gradualmente en una tecnología madura compuesta por múltiples módulos de subproyectos diferentes), como Spring Framework, Spring MVC SpringBoot, Spring Cloud, Spring Data Spring. Seguridad, etc., Spring Framework es la base para otros subproyectos.
  3. Estos subproyectos cubren todo, desde el desarrollo de aplicaciones a nivel empresarial hasta la computación en la nube, y pueden ayudar a los desarrolladores a resolver diversos problemas prácticos que surgen constantemente durante el proceso de desarrollo de software y brindarles una mejor experiencia de desarrollo.

sentido estricto:

  1. Spring en sentido estricto se refiere específicamente a Spring Framework, que normalmente llamamos Spring Framework.
  2. Spring Framework (Spring Framework) es un marco de aplicación de código abierto desarrollado por SpringSource Company y fue creado originalmente para resolver varios problemas comunes en el desarrollo empresarial. Proporciona muchas funciones, tales como: inyección de dependencia (inyección de dependencia), programación orientada a aspectos (AOP), gestión de transacciones declarativas (TX), etc. Su objetivo principal es hacer que el desarrollo de aplicaciones de nivel empresarial sea más fácil y rápido, y el marco Spring se usa ampliamente en el campo del desarrollo empresarial Java.
  3. ¡Otros marcos de Spring Family Bucket se basan en el marco Spring Framework!

1.2 Como marco básico, es necesario comprender qué es un marco.

Framework = combinación de paquete jar y archivo de configuración.

Por ejemplo, la diferencia entre log4j y dbutil.

dbutil (tecnología de simplificación de bases de datos): es solo un paquete jar simple, que solo utiliza sus métodos relacionados, por lo que es solo una clase de herramienta log4j (tecnología de salida de registros): aunque solo hay dos métodos en su paquete jar, puede configurar relacionados log4j .propertis para modificar el contenido de la salida del registro, por lo que este es un marco.

1.3 Funciones de SpringFrameWork

SpringFrameWork tiene cuatro funciones más importantes: Core Container, AOP&Aspect, TX y SpringMVC.

módulo funcional Características
Contenedor central Cualquier función utilizada en el entorno Spring debe basarse en el contenedor IOC
AOP y aspectos Programación Orientada a Aspectos
Texas Gestión de transacciones declarativas
MVC de primavera Funciones integradas para aplicaciones web.

1.4 Ventajas de SpringFrameWork

  1. Ecosistema rico: Spring Framework cuenta con el respaldo de una gran comunidad de código abierto y proporciona una variedad de extensiones y complementos, como Spring Security, Spring Data, etc., que enriquecen las opciones y la escalabilidad de los desarrolladores.
  2. Diseño modular: Spring Framework adopta un diseño modular, dividiendo las funciones en módulos independientes. Los desarrolladores pueden optar por utilizar diferentes módulos según sus necesidades, lo que mejora la flexibilidad y la mantenibilidad del proyecto.
  3. Simplifique el desarrollo de Java: Spring Framework proporciona características como inyección de dependencia (DI) y programación orientada a aspectos (AOP), que simplifica el proceso de desarrollo de aplicaciones Java, reduce la escritura de código repetitivo y mejora la eficiencia del desarrollo.
  4. Innovación y desarrollo continuos: Spring Framework continúa llevando a cabo innovación y desarrollo tecnológico, introduciendo nuevas características y funciones, como programación reactiva, programación funcional, etc., para satisfacer continuamente las necesidades de desarrollo en diferentes escenarios y mantenerse al día.

2. Contenedor SpringIOC

2.1 La diferencia entre el contenedor SpringIOC y el contenedor normal

Primero, comprenda qué son los contenedores ordinarios y los contenedores complejos.

  • Contenedores ordinarios: al igual que las colecciones en el marco de recopilación de clases de Java, solo pueden almacenar y recuperar funciones.
  • Contenedor complejo: puede gestionar algunas transacciones relativamente complejas, como la relación entre contenidos, como un contenedor de servlets, que puede recibir información de la solicitud y operar con la información de la solicitud.

SpringIoc puede administrar el contenedor de componentes, que es un contenedor complejo que no solo puede almacenar componentes, sino también administrar dependencias entre componentes, crear y destruir componentes, etc.

2.2 ¿Qué son los componentes?

Los componentes son objetos que se pueden reutilizar.

Por ejemplo, en un marco de tres niveles, la arquitectura de tres niveles se puede dividir en tres componentes.

2.3 ¿Cuáles son las ventajas de los componentes de gestión de Spring?

  1. Reducir el acoplamiento entre componentes: Spring administra los componentes mediante inyección de dependencia (DI), de modo que las dependencias entre componentes son administradas dinámicamente por el contenedor, reduciendo el estrecho acoplamiento entre componentes y mejorando la escalabilidad y flexibilidad del código.
  2. Reutilizabilidad y mantenibilidad del código mejoradas: al transferir la creación y configuración de componentes a la administración de contenedores Spring, los componentes se pueden reemplazar, actualizar y configurar de manera flexible sin modificar el código original, lo que mejora la reutilización de los componentes, el rendimiento y la mantenibilidad.
  3. Configuración y administración convenientes: Spring proporciona una variedad de métodos de configuración, como configuración XML, configuración de anotaciones y configuración de Java, que pueden configurar y administrar componentes de manera flexible. Al mismo tiempo, el contenedor Spring administra de manera uniforme el ciclo de vida de los componentes, simplificando los componentes. configuración y gestión proceso de gestión.
  4. Los objetos (componentes) administrados por Spring pueden disfrutar de otras funciones del marco Spring, como AOP, declaración de transacciones, etc.

2.4 Interfaces específicas y clases de implementación implementadas por SpringIoc

1. Dos interfaces específicas

interfaz Características
fábrica de frijoles Proporciona las funciones básicas del contenedor IOC para gestionar y obtener objetos Bean.
Contexto de aplicación Proporciona funciones más avanzadas basadas en BeanFactory, como procesamiento de eventos, soporte de internacionalización, etc.

 La relación entre las dos interfaces:

  1. BeanFactory es el contenedor más básico de Spring y proporciona las funciones básicas del contenedor IoC para administrar y obtener objetos Bean. Es una implementación del patrón factory, responsable de crear y gestionar el ciclo de vida y las dependencias de los Beans. BeanFactory tiene la característica de carga diferida y solo se creará una instancia cuando sea necesario obtener los beans.
  2. ApplicationContext se amplía sobre la base de BeanFactory y proporciona funciones y características más avanzadas. ApplicationContext creará una instancia previa e inicializará todos los objetos Bean al inicio y los almacenará en caché en el contenedor, proporcionando así un acceso más rápido. Además de las funciones de BeanFactory, ApplicationContext también admite procesamiento de eventos, soporte de internacionalización, carga de recursos y otras funciones.

En resumen, BeanFactory proporciona el marco de configuración y la funcionalidad básica, mientras que ApplicationContext agrega más funcionalidades específicas de la empresa. ¡ApplicationContext es un superconjunto completo de BeanFactory! 

2.5Cuatro clases de implementación de la interfaz ApplicationContext

Escribe un nombre describir
ClassPathXmlApplicationContext Cree un objeto contenedor IOC leyendo el archivo de configuración en formato XML en la ruta de clase. Es adecuado para colocar el archivo de configuración en la ruta de clase del proyecto, como el archivo de configuración en el directorio src/main/resources.
FileSystemXmlApplicationContext Lea el archivo de configuración en formato XML a través de la ruta del sistema de archivos para crear un objeto contenedor IOC. Se aplica a archivos de configuración que especifican rutas absolutas o relativas.
AnnotationConfigApplicationContext Cree un objeto contenedor IOC leyendo la clase de configuración de Java. Es adecuado para la configuración basada en anotaciones y no requiere el uso de archivos XML para la configuración.
Contexto de aplicación web Especialmente preparado para aplicaciones web, cree objetos contenedores IOC basados ​​en el entorno web e importe y almacene los objetos en el dominio ServletContext. Adecuado para proyectos web para obtener información contextual relacionada con la web.

Un marco Spring solo necesita elegir un método de implementación de subclase

Las siguientes son las condiciones para la implementación de las cuatro clases de implementación.

  • ClassPathApplicationContext: 1. Usar configuración XML 2. Recurso bajo la ruta de clase del proyecto
  • FileSystemApplicationContext: 1. Utilice la configuración XML 2. Almacene el archivo fuera del proyecto, en una letra de unidad determinada
  • AnnotationConfigApplicationContext: 1. El archivo de configuración utiliza clases Java
  • WebApplicationContext: 1. El proyecto web corresponde al contenedor ioc

2.6 Método de configuración del marco Spring

  1. Método de configuración XML:

    • Descripción: uno de los primeros métodos de configuración de Spring define beans y sus dependencias, alcance y otra información a través de archivos XML, y el contenedor Spring IOC administra las dependencias entre beans.
    • Características: Compatible con la primera versión del framework Spring.
  2. Método de anotación:

    • Descripción: compatible a partir de Spring 2.5, utilizando anotaciones para reemplazar la información de configuración en archivos de configuración XML. Al utilizar anotaciones (como @Component, @Service, @Autowired, etc.) en la clase Bean, el Bean se registra en el contenedor Spring IOC para lograr la gestión de dependencias.
    • Características: Simplifique la configuración y mejore la eficiencia del desarrollo.
  3. Método de clase de configuración de Java:

    • Descripción: Compatible a partir de Spring versión 3.0, utilizando clases Java para definir objetos Bean, dependencias e información de configuración, reemplazando archivos de configuración XML. Implemente la configuración de beans y dependencias a través de @Configuration, @Bean y otras anotaciones.
    • Características: utilice código Java para escribir la configuración, alta seguridad de tipos y puede utilizar funciones orientadas a objetos para la configuración.

La configuración principal actual: clase de configuración + método de anotación (atendiendo a SpringBoot) principalmente para anotaciones


3. Funciones principales de SpringIoc

Hay dos funciones principales de Spring: SpringIoc (inversión de control) y DI (inyección de dependencia)

¿Qué es la inversión de control Ioc (Inversión de control)?

        Se refiere a un principio de diseño que transfiere el control de la creación e invocación de objetos desde la aplicación al contenedor. En IoC, las aplicaciones ya no crean y administran objetos directamente, sino que el contenedor de IoC es responsable de crear y administrar objetos e inyecta dependencias de objetos en la aplicación mediante inyección de dependencias.

Las características principales son las siguientes:

  • Transferencia de control: la aplicación ya no controla directamente la creación e invocación de objetos, sino que delega la gestión al contenedor de IoC.
  • Inyección de dependencia: mediante la inyección de dependencia, se inyectan dependencias de objetos en la aplicación, lo que resuelve el acoplamiento entre objetos y mejora la flexibilidad y capacidad de prueba del código.
  • Búsqueda de dependencias: la aplicación utiliza el contenedor IoC para encontrar los objetos que necesita usar en lugar de crear los objetos ella misma, lo que reduce las dependencias del código.

¿Qué es la inyección de dependencia DI (inyección de dependencia)?

Cree dos objetos A y B. El objeto B pasa el objeto A al objeto B a través de setter y otros métodos.

La inyección de dependencias (DI) se refiere al proceso de transferir dependencias entre componentes dejando el procesamiento de dependencias al contenedor, evitando así codificar dependencias entre objetos en el código de la aplicación e implementar el desacoplamiento de objetos entre ellos. En el marco Spring, DI se puede implementar a través de anotaciones o archivos de configuración XML y proporciona tres formas de inyección de dependencia:

  1. Inyección de constructor: al anotar el constructor de la clase o configurar las dependencias correspondientes en el archivo de configuración XML, el contenedor pasará automáticamente las dependencias requeridas como parámetros al constructor al crear el objeto Completa creación de objetos e inyección de dependencias.

  2. Inyección del método Setter (Inyección Setter): al anotar el método Setter de la clase o configurar las dependencias correspondientes en el archivo de configuración XML, el contenedor llama al método Setter correspondiente después de crear el objeto y pasa los objetos de dependencia requeridos para completar el objeto. Inyección de dependencia.

  3. Inyección de interfaz: al definir variables miembro del tipo de interfaz en la clase, implementar la interfaz correspondiente en la clase y configurar las dependencias correspondientes en el archivo de configuración XML, después de que el contenedor crea el objeto, llamará a la interfaz para el objeto dependiente. .método para inyectar en la clase.


Resumir:

1. Conozca la relación entre SpringFrameWork y Spring

2. Domine las funciones principales de SpringFrameWork

3. Domine las dos interfaces y cuatro implementaciones de SpringIoc

4. Domine los tres métodos de configuración del marco Spring.

5. Comprender la inversión del control de Ioc y la inyección de dependencia DI

solicitud:

Implementación de la configuración SpringIoC basada en el blog-CSDN de XML_Alphamilk 

Supongo que te gusta

Origin blog.csdn.net/dogxixi/article/details/132457110
Recomendado
Clasificación