Pregunta de la entrevista: Cuénteme sobre su comprensión de la primavera.
Texto original: /question
Spring es un sistema muy grande. Puede visitar su sitio web oficial https://spring.io/projects para obtener más detalles.
En primer lugar, para responder a esta pregunta, primero puede introducir varios proyectos en el sistema Spring:
SpringFramework
SpringData
SpringSecurity
SpringBoot
SpringCloud
Por supuesto, además de estos, Spring también incluye muchos otros proyectos.
Luego, concéntrese en el proyecto SpringFramework, que es una aplicación de pila Java/JavaEE de código abierto con todas las funciones. SpringFramework proporciona un método de desarrollo simple que puede evitar el uso de aquellos que pueden causar que el código subyacente se abarrote. muchos archivos de propiedades y clases auxiliares.
El diseño poco intrusivo de Spring hace que la contaminación del código sea extremadamente baja.
SpringFramework incluye las siguientes partes:
Luego, presentamos los conceptos centrales de Spring:
Gestión de beans
Inyección de dependencia (DI ), también conocida como Inversión de Control (IOC)
Programación Orientada a Aspectos (AOP)
①Bean Management
A diferencia de las aplicaciones tradicionales, en Spring La creación La cantidad de objetos es administrada por el contenedor Spring, lo que significa que Spring solo puede actuar sobre las clases ubicadas en el contenedor Spring. Entonces, ¿cómo obtiene Spring el objeto de la clase?
Para saber esto, primero debemos aclarar estos puntos:
BeanFactory es la interfaz raíz del contenedor Spring, ApplicationContext es su subinterfaz y su subinterfaz ApplicationContext suele ser Se utiliza para acceder al contenedor Spring.
Hay cuatro clases de implementación comúnmente utilizadas para la subinterfaz ApplicationContext:
ClassPathXmlApplicationContext carga el archivo de configuración de Spring desde la ruta de clase
FileSystemApplicationContext carga el archivo de configuración de Spring del archivo del sistema
AnnotationConfigApplicationContext obtiene el objeto contenedor Spring basado en anotaciones
XmlWebApplicationContext obtiene el objeto contenedor Spring en el entorno web
Spring obtiene los objetos de estos clases a través de BeanFactory, en el archivo de configuración La clase se entrega a Spring para su administración a través del nodo
② Inyección de dependencia
Puede reducir el acoplamiento entre clases. Hay dos métodos de inyección:
inyección de conjuntos, use
inyección de conjunto
·? Inyección del método constructor, use
Inyección del método constructor
< en el archivo de configuración p> El siguiente es un ejemplo para ilustrar qué es la inyección de dependencia:Supongamos que la clase A necesita llamar a la clase B debido a la función F. En un programa tradicional, crearemos un nuevo objeto de clase B, por lo que la clase A dependerá de la clase B, lo que significa que si la clase B no existe, la clase A no se puede utilizar.
Después de usar la inyección de dependencia, la clase A solo necesita llamar a una clase de implementación que implemente la interfaz de la función F. Esta clase de implementación puede ser la clase B, C, etc. La persona que llama específica está determinada por el archivo de configuración de Spring, por lo que la clase A no lo hace. Depende de la clase B.
Podemos entender la inversión de control así:
Los recursos no son administrados por las dos partes que usan los recursos, sino por un tercero que no usa los recursos (es decir , el contenedor Spring), por lo que los beneficios son:
Gestión centralizada de recursos para hacer que los recursos sean configurables y fáciles de administrar
Reducir la dependencia de ambas partes que utilizan los recursos
En los programas tradicionales, cuando un rol requiere ayuda de otro rol, la persona que llama crea una instancia del destinatario. En Spring, el trabajo de crear la persona que llama ya no lo realiza la persona que llama, sino el contenedor Spring de terceros, por lo que se llama inversión de control. El contenedor Spring crea una instancia de la persona que llama y luego la inyecta en la persona que llama. Por eso también se le llama inyección de dependencia.
③Programación orientada a aspectos
AOP se refleja principalmente en dos aspectos en Spring:
Proporcionar gestión de transacciones declarativas
Soporte de usuario para Spring aspectos definidos
La programación orientada a aspectos es un complemento a la programación orientada a objetos (POO). La programación orientada a objetos descompone el programa en objetos en varios niveles, y la programación orientada a aspectos descompone el proceso de ejecución del programa en varios aspectos. La programación orientada a aspectos se implementa en base a proxies dinámicos, lo que reduce el grado de acoplamiento directo de clases. La gestión de transacciones de Spring se implementa en base a AOP.
Tutorial de recursos gratuito