Resumen de las preguntas frecuentes de la entrevista de primavera

1. Preguntas generales

1.1 ¿Cuáles son las funciones principales de las diferentes versiones de Spring Framework?

La versión Feature
Spring 2.5 se lanzó en 2007. Esta es la primera versión que admite anotaciones.
Spring 3.0 se lanzó en 2009. Aprovecha al máximo las mejoras de Java5 y proporciona soporte para JEE6
.
Spring 4.0 se lanzó en 2013. Esta es la primera versión totalmente compatible con JAVA8.

1.2 ¿Qué es Spring Framework?

Spring es un marco de aplicaciones de código abierto diseñado para reducir la complejidad del desarrollo de aplicaciones. Es liviano y está
acoplado libremente.
Tiene una arquitectura en capas que permite a los usuarios seleccionar componentes y al mismo tiempo proporciona un marco coherente para el desarrollo de aplicaciones J2EE . Puede integrar otros frameworks, como Structs, Hibernate,
EJB, etc., por lo que también se le llama framework de frameworks.

1.3 Enumere las ventajas de Spring Framework.

Debido a la arquitectura en capas de Spring Frameworks, los usuarios son libres de elegir los componentes que necesitan.
Spring Framework admite la programación POJO (Plain Old Java Object), lo que permite una integración
y capacidad de prueba continuas. JDBC se simplifica gracias a la inyección de dependencia y la inversión de control. Es de código abierto y gratuito.

1.4 ¿Cuáles son las diferentes funciones de Spring Framework?

Ligero: Spring es liviano en términos de tamaño de código y transparencia. IOC (Inversión de control AOP): la programación orientada a aspectos
puede separar la lógica empresarial de la aplicación y los servicios del sistema para lograr una alta cohesión. Contenedor: Spring es responsable
de crear y gestionar el ciclo de vida y la configuración de los objetos (Beans). MVC: proporciona un alto
grado de configurabilidad para aplicaciones web y la integración de otros marcos también es muy conveniente. Gestión de transacciones: proporciona una
capa de abstracción común para la gestión de transacciones. El soporte de transacciones de Spring también se puede utilizar en entornos con menos contenedores. Excepciones JDBC:
la capa de abstracción JDBC de Spring proporciona una jerarquía de excepciones que simplifica las estrategias de manejo de errores.

1.5 ¿Cuántos módulos hay en Spring Framework y cuáles son?

Insertar descripción de la imagen aquí
Spring Core Container: esta capa es básicamente el núcleo de Spring Framework. Contiene los siguientes módulos
:
 Spring Core
 Spring Bean
 SpEL (lenguaje de expresión Spring)
 Acceso/integración de datos de contexto Spring
: esta capa proporciona soporte para interactuar con la base de datos. Contiene los siguientes módulos:
 JDBC (Java DataBase Connectivity)
 ORM (Object Relational Mapping)
 OXM (Object XML Mappers)
 JMS (Java Messaging Service)
 Transaction
Web: esta capa proporciona soporte para la creación de aplicaciones web. Contiene los siguientes módulos:
 Web
 Web – Servlet
 Web – Socket
 Web – Portlet
AOP
 Esta capa admite programación orientada a aspectos
Instrumentación
 Esta capa proporciona soporte para la detección de clases y la implementación del cargador de clases.
Prueba
 Esta capa proporciona soporte para pruebas utilizando JUnit y TestNG.
Varios módulos diversos:
Mensajería: este módulo proporciona soporte para STOMP. También admite un modelo de programación de anotaciones para
enrutar y manejar mensajes STOMP de clientes WebSocket.
Aspectos: este módulo brinda soporte para la integración con AspectJ.

1.6 ¿Qué es el archivo de configuración de Spring?

Los archivos de configuración de Spring son archivos XML. Este archivo contiene principalmente información de clase. Describe cómo estas clases se
configuran y se introducen entre sí. Sin embargo, los archivos de configuración XML son detallados y más limpios. Si no se planifica
y escribe correctamente, gestionar grandes proyectos se vuelve muy difícil.

1.7 ¿Cuáles son los diferentes componentes de una aplicación Spring?

Las aplicaciones Spring generalmente tienen los siguientes componentes:
 Interfaz: define la funcionalidad.
 Clase Bean: contiene propiedades, métodos setter y getter, funciones, etc.
 Programación orientada a aspectos (AOP) de Spring: proporciona la funcionalidad de programación orientada a aspectos.
 Archivo de configuración de Bean: contiene información sobre las clases y cómo configurarlas.
 Programa de usuario: utiliza interfaces.

1.8 ¿Cuáles son las formas de utilizar Spring?

Existen las siguientes formas de utilizar Spring:
 Como una aplicación web Spring completa.
 Como marco web de terceros, utilice la capa intermedia de Spring Frameworks.
 Para uso remoto.
 Como Java Bean de nivel empresarial, puede encapsular POJO (
objetos Java simples y antiguos) existentes.

2. Inyección de dependencia (Ioc)

2.1 ¿Qué es el contenedor Spring IOC?

El núcleo del marco Spring es el contenedor Spring. Los contenedores crean objetos, los ensamblan, los configuran
y gestionan su ciclo de vida completo. El contenedor Spring utiliza la inyección de dependencias para administrar los componentes que componen una aplicación
. El contenedor recibe instrucciones para la creación de instancias, configuración y ensamblaje de objetos leyendo los metadatos de configuración proporcionados
. Estos metadatos se pueden proporcionar mediante XML, anotaciones Java o código Java.
Insertar descripción de la imagen aquí

2.2 ¿Qué es la inyección de dependencia?

En la inyección de dependencia, no es necesario crear objetos, pero debe describir cómo crearlos. En lugar de conectar componentes y servicios directamente en el código
, usted describe qué componentes requieren qué servicios en un archivo de configuración.
Son ensamblados por el contenedor IoC .

2.3 ¿De cuántas formas se puede completar la inyección de dependencia?

Generalmente, la inyección de dependencia se puede realizar de tres maneras, a saber:
 Inyección de constructor
 Inyección de setter
 Inyección de interfaz
En Spring Framework, solo se utilizan la inyección de constructor y setter.

2.4 Distinga entre inyección constructora e inyección setter.

Inyección de constructor Inyección de setter
Hay inyección parcial sin inyección parcial.
La propiedad del setter no se sobrescribirá. La propiedad del setter se sobrescribirá.
Cualquier modificación creará una nueva instancia. Cualquier modificación no creará una nueva instancia. Es
adecuado para configurar muchos propiedades y es adecuado para establecer un pequeño número de propiedades.

2.5 ¿Cuántos tipos de contenedores COI hay en primavera?

BeanFactory: BeanFactory es como una clase de fábrica que contiene una colección de beans.
Crea una instancia del bean cuando lo solicita el cliente .
ApplicationContext: la interfaz ApplicationContext amplía la interfaz BeanFactory. Proporciona algunas funciones adicionales basadas en BeanFactory.

2.6 Distinguir entre BeanFactory y ApplicationContext.

BeanFactory ApplicationContext
Utiliza carga diferida Utiliza carga justo a tiempo
Utiliza sintaxis para proporcionar explícitamente objetos de recursos Crea y administra objetos de recursos por sí mismo
No admite la internacionalización Admite la internacionalización
No admite anotaciones basadas en dependencias Admite anotaciones basadas en dependencias

2.7 Enumere algunos beneficios de la COI.

Algunos de los beneficios de IoC son:
 Minimizará la cantidad de código en la aplicación.
 Hará que su aplicación sea fácil de probar, ya que no requiere ningún
mecanismo de búsqueda singleton o JNDI en casos de prueba unitaria.
 Promueve un acoplamiento flojo con un impacto mínimo y mecanismos menos intrusivos.
 Admite creación de instancias sobre la marcha y carga diferida de servicios.
2.8 Mecanismo de implementación de Spring IoC.
El principio de implementación de IoC en Spring es el patrón de fábrica más el mecanismo de reflexión.
Ejemplo:

interface Fruit {
public abstract void eat();
}
class Apple implements Fruit {
public void eat(){
System.out.println("Apple");
} }
class Orange implements Fruit {
public void eat(){
System.out.println("Orange");
} }
class Factory {
public static Fruit getInstance(String ClassName) {
Fruit f=null;
try {
f=(Fruit)Class.forName(ClassName).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return f;
} }
class Client {
public static void main(String[] a) {
Fruit f=Factory.getInstance("io.github.dunwu.spring.Apple");
if(f!=null){
f.eat();
} } }

Aún no terminado, el artículo continuará...

Supongo que te gusta

Origin blog.csdn.net/mars131458/article/details/132103300
Recomendado
Clasificación