Breve introducción al conocimiento básico de Spring

1. ¿Qué es la primavera?

Marco liviano de código abierto, en capas, integral

2. ¿Cuáles son el núcleo de la primavera?

1) ioc di
2) aop
3) gestión de transacciones
4) webFlux

3. ¿Cuál es el patrón de fábrica? ¿Es la fábrica de frijoles de primavera un patrón de fábrica? ¿Cuál es la diferencia?

Una interfaz para crear objetos, el
patrón de fábrica se divide en patrón de fábrica simple, patrón de método de fábrica y patrón de fábrica abstracto.

Diferencia: la capa inferior del frijol usa reflexión.

4. ¿Qué es ioc? ¿Hay varias formas de configurar ioc?

Inversión de control
Método 1: Configuración basada en XML
Método 2: Anotación
Método 3: Configuración basada en Java

5. Hay varias formas de obtener el contenedor de ioc, ¿cuál es la diferencia?

1 Carga diferida de XmlBeanFactory
2 Carga instantánea de ApplicationContext
1) ClassPathXmlApplicationContext
2) FileSystemXmlApplicationContext
3 WebApplicationContext

6. ¿Qué método se utiliza para obtener frijoles del recipiente de ioc? ¿Hay varias formas?

getBean () método
1) getBean (id)
2) getBean (nombre de clase.clase)
3) getBean (nombre de clase completamente calificado)
4) getBean (id, nombre de clase completamente calificado)
5) getBean (nombre de clase.class, El nombre completo de la clase);

7. ¿Qué es di? ¿Cuáles son las formas de di

Inyección de dependencia;
1) inyección de método establecido (xml, anotación)
2) inyección de método de construcción (xml, anotación)
3) inyección de método de fábrica

8. ¿Qué es aop?

aop: El método del objeto objetivo se implanta y mejora a través de la tecnología del agente dinámico, a fin de lograr el propósito de mejorar la lógica del método.

AOP es la abreviatura de Programación Orientada a Aspectos, que significa: programación orientada a aspectos, una tecnología que puede agregar funciones de manera dinámica y uniforme a los programas a través de agentes dinámicos de precompilación y tiempo de ejecución sin modificar el código fuente.

9. ¿Cuál es el principio subyacente de aop?

El principio subyacente de aop: tecnología de proxy dinámico proxy dinámico jdk y proxy dinámico cglib

10.¿Cómo implementar el proxy dinámico jdk?

El proxy dinámico jdk utiliza el mecanismo de reflexión para generar un objeto proxy, que se entrega a InvokeHandler para que lo procese antes de llamar al método específico. La
esencia es usar la tecnología de empalme de bytes para generar automáticamente una clase de proxy $ Proxy0 (subclase) para la interfaz

11. ¿Cómo realizar el proxy dinámico cglib?

El proxy dinámico cglib es utilizar el paquete jar de asm para cargar el archivo de clase de la clase de objeto de proxy y generar subclases modificando su código de bytes; cubre los métodos no finales para realizar el proxy.

CGLIB no puede representar una clase final o un método final.

12. La diferencia entre el agente dinámico jdk y el agente dinámico calib
区别:
	1.JDK动态代理只能对实现了接口的类生成代理,只针对接口实现类 。
	2.CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法 。
13. ¿Cuál es el punto de conexión del concepto en aop? ¿Cuál es el punto de contacto? ¿Cuál es el aspecto? ¿Qué es la notificación?

¿Qué es implantación ?, ¿Qué es un proxy ?, ¿Qué es un objetivo?

连接点           可以被增强的方法
    	切点              被增强的方法
    	通知/增强      增强的逻辑
    	切面              就是切点和通知(增强)的统称
    	植入              将通知植入到目标方法的过程
代理对象      调用被代理的对象,并且把返回结果再传给调用代理对象的对象。
    	目标对象       被增强的对象
14. ¿Qué es una empresa?

Transacción: un grupo de operaciones lógicas, todas exitosas o todas fallan, el propósito de la transacción es resolver el problema de [inconsistencia de datos].

15. ¿Cuáles son las 4 características de las transacciones? ÁCIDO
        原子性:
        一致性:
        隔离性
        持久性:
16. ¿Cuáles son los problemas de concurrencia de las transacciones?

Lectura sucia Lectura
no repetible
Lectura
ficticia Actualización perdida

17. ¿Cuáles son los niveles de aislamiento de las transacciones? ¿Qué problemas resuelven?
        未提交读:   以上情况都有可能发生。
        已提交读:   避免脏读,但不可重复读,虚读是有可能发生。
        可重复读:   避免脏读,不可重复读,但是虚读有可能发生。
        串行的:        避免以上所有情况.    系统吞吐量很低
18. ¿Cuáles son las interfaces centrales de la gestión de transacciones de primavera?

PlatformTransactionManager
TransactionDefinition
TransactionStatus

19. ¿Cuál es la diferencia entre la transacción programática (manual) y la transacción declarativa en primavera? ¿Qué método de transacción se usa generalmente en desarrollo?
1.手动式针对单个方法进行增强,如果有多个方法,每个方法都要手动调用transactionTemplate
2. 声明式事务通过aop的原理进行增强方法的方式
20. ¿Cómo implementar transacciones declarativas?

Paso 1: Qué métodos de la capa empresarial requieren transacciones (piratería).
Paso 2: Configure el administrador de transacciones en xml (los diferentes métodos de administración de transacciones del marco de orm son diferentes)
Paso 3: Defina el aspecto en
la configuración xml Paso 4: La configuración xml genera automáticamente el objeto proxy del método comercial de acuerdo con el punto de corte + mejora

21. ¿Cómo realizar la transacción manual?

Paso 1: Qué métodos de la capa empresarial requieren transacciones (piratería).
Paso 2: Configurar el administrador de transacciones en xml (los diferentes métodos de administración de transacciones del marco de trabajo de orm son diferentes)
Paso 3: Definir la clase de plantilla de transacción TransatcionTemplate en la clase de negocio
Paso 4: En el método que requiere la administración de transacciones
Paso 5: Prueba, Llame al método de la clase empresarial

Supongo que te gusta

Origin blog.csdn.net/weixin_46822085/article/details/109024894
Recomendado
Clasificación