Puntos de conocimiento de la entrevista de Spring preguntados con frecuencia

El marco Spirng es muy importante, es una base para que aprendamos otros marcos, Spring tiene muchos puntos de conocimiento importantes, como IOC, DI, AOP, etc., el conocimiento relacionado con Spring también es un módulo solicitado con frecuencia por los entrevistadores, por lo que tenemos que Para comprender algunos de los principios de implementación subyacentes de Spring, a continuación se resumen algunas de las preguntas que se hacen a menudo en las entrevistas:

1. El alcance de Spring Bean
①singleton: alcance singleton, por defecto, el modo singleton se usa para crear beans
②prototype: alcance prototipo, el modo prototype se usa para crear beans
③request: la misma solicitud Http comparte un objeto Bean, y diferentes Requests poseen Diferentes objetos Bean
④sesión: la misma sesión Http comparte un objeto Bean, y diferentes sesiones tienen diferentes objetos Bean
⑤aplicación: el ámbito web global, similar a la Aplicación en Servlet

2.
Método de registro Spring Bean
①Método de registro del archivo de configuración XML ②Método de registro de anotación de Java (anotación de @Component y anotación de
@Bean ) ③Método de registro de API de Java

3. Problemas
con beans con el mismo nombre El id y el nombre del bean en el mismo archivo de configuración de Spring no se pueden repetir, de lo contrario se informará un error cuando se inicie el contenedor de Spring. Pero si Spring carga varios archivos de configuración, puede surgir el problema de los beans con el mismo nombre. Bean con el mismo nombre se refiere a varios beans con el mismo nombre o id. La regla de procesamiento de Spring para frijoles con el mismo nombre es usar el último Bean para cubrir el Bean anterior, por lo que cuando definimos el Bean, intentamos usar definiciones no repetitivas de nombre largo para evitar el problema de los frijoles con el mismo nombre. No es necesario especificar el atributo id o name del bean, si lo deja en blanco, el contenedor generará automáticamente un nombre único para el bean, por lo que no habrá ningún problema con el bean con el mismo nombre.

4. Spring IOC
IOC-Inversion of Control, o inversión de control, no es una tecnología, sino una idea de diseño. IOC permite a los programadores no prestar atención a cómo crear objetos, sino centrarse en las operaciones posteriores a la creación del objeto y delegar la creación, inicialización y destrucción de objetos al contenedor de resorte.

5. Spring IOC tres formas de crear objetos ①Usar el
método de construcción predeterminado ②Usar el método de
fábrica estático Usar el método de
fábrica de instancias

Para obtener más información, consulte el artículo: https://www.cnblogs.com/ysocean/p/7466217.html#_label2

6. Cuando la inyección de dependencia DI
crea un objeto, puede depender de otros objetos, es decir, cómo asignar valores a los atributos de la clase y se utilizan los puntos de conocimiento de DI. En términos simples, la inyección de dependencia consiste en asignar valores a atributos (incluidos tipos de datos básicos y referencias). tipo de datos), inyección de dependencia a través de la reflexión inferior lograda

Dos formas de inyección de dependencia:

  • Usar inyección de constructor
  • Utilice el método Setter para inyectar

Para obtener más información, consulte el artículo: https://www.cnblogs.com/ysocean/p/7471451.html

7. Momento de creación de objetos en el
contenedor Spring ①De forma predeterminada, cuando se inicia el contenedor Spring, creará el objeto (lea el archivo de configuración de Spring y lo creará cuando encuentre un bean)
②Puede configurar una propiedad lazy-init = "true" para el bean , Después de configurar esta propiedad, Spring creará el objeto en context.getBean

Hay ventajas y desventajas en los dos tiempos de creación de objetos:

  • En el primer caso, puede verificar la exactitud del archivo de configuración del contenedor de resorte al iniciar el contenedor de resorte. Si se combina con tomcat, si el contenedor de resorte no puede comenzar normalmente, todo el gato no puede comenzar normalmente. Pero la desventaja de esto es que algunos beans se colocan en la memoria prematuramente, si hay datos, consumirán memoria.
  • En el segundo caso, se puede reducir el consumo de memoria, pero no es fácil encontrar errores

8. El ciclo de vida de Spring Bean ①
Instanciación de Bean : De lo anterior se puede ver que el tiempo de creación del objeto Bean puede ser cuando se inicia el contenedor Spring o cuando se llama al método getBean. Cuando se crea el objeto Bean, se dispara la instanciación del Bean De hecho, también puede entenderse como un nuevo objeto, que ejecuta el método de construcción de la clase; debe tenerse en cuenta que debido a que el alcance del bean puede ser el alcance predeterminado singleton singleton, el bean solo se activará cuando se llame al método getBean por primera vez. Después de la instanciación de
Bean , el siguiente paso es devolver directamente el objeto bean existente; ② Llamar al método de inicialización de Bean initializeBean ()
③Después de que se completa la inicialización, el objeto Bean se puede usar normalmente y se puede llamar al método del objeto Bean en sí.
④ La destrucción del objeto Bean : El método de destrucción del objeto Bean se ejecutará cuando el contenedor Spring esté cerrado, pero el contenedor Spring no llamará automáticamente al método de destrucción, pero debemos llamarlo de forma activa.

Nota: Hay dos tipos de contenedores en Spring, uno es el contenedor BeanFactory y el otro es el contenedor ApplicationContext; los métodos para destruir el Bean llamado por los dos contenedores son diferentes

9. Spring AOP
AOP (Programación Orientada a Aspectos), generalmente conocida como programación orientada a aspectos, la realización de AOP se basa en la implementación de proxy dinámico , extrae módulos de código común, cuando necesita utilizar este código común para mejorar la lógica empresarial Utilice una tecnología "transversal" para mejorar, no modificar el código original, para cumplir con el principio ocp; la ventaja de Spring AOP es que puede reducir el código repetitivo, mejorar la eficiencia del desarrollo y permitir que los módulos comerciales se concentren en el código relacionado con el negocio. Reducir el acoplamiento

Para obtener más información, consulte el artículo: https://www.cnblogs.com/ysocean/p/7476379.html

Suplemento: los tres componentes principales de Spring: Core, Context, Bean

Supongo que te gusta

Origin blog.csdn.net/can_chen/article/details/107850507
Recomendado
Clasificación