Los filtros se llaman antes de que una solicitud llegue al DispatcherServlet. Permiten un procesamiento encadenado de estilo de intercepción de solicitudes web para seguridad, tiempos de espera y otros propósitos.
Se utilizan filtros con un algoritmo de suma de comprobación que filtrará bytes inválidos de un cuerpo de solicitud de flujo de bytes y permitirá el procesamiento de solicitudes HTTP desde DispatcherRequestServlet.
Se utilizan filtros con un algoritmo de suma de comprobación que filtrará bytes inválidos de un flujo de octetos en una carga útil múltiple y permitirá un procesamiento encadenado de solicitudes WebDispatcherServlet.
Se utilizan filtros para validar los parámetros de solicitud fuera del cuerpo de la solicitud de flujo de bytes y permitir el procesamiento de solicitudes desde DispatcherRequestServlet.
Q2. ¿Cómo se define un recurso en el contexto de un servicio REST?
Un recurso es el literal de cadena real que compone un URI al que se accede en un servicio web RESTful.
Es un concepto abstracto que representa un objeto tipado, datos, relaciones y un conjunto de métodos que operan en él que se accede a través de un URI.
Un servicio REST tiene un conjunto de recursos compuesto por asignaciones de memoria que permiten procesar una solicitud.
Un recurso para un servicio REST es una asignación explícita de un hilo o ciclos de CPU para permitir el procesamiento de una solicitud.
Q5. ¿Cómo se implementan los repositorios de Spring Data por Spring en tiempo de ejecución?
Spring genera automáticamente código para usted basado en su configuración YAML que define una cadena MethodInterceptor que intercepta las llamadas a la instancia y calcula SQL sobre la marcha.
Se crea una instancia de proxy JDK, que respalda la interfaz del repositorio, y un MethodInterceptor intercepta las llamadas a la instancia y las enruta según sea necesario.
El proxy JDK de Spring crea un proceso de tiempo de ejecución separado que actúa como intermediario entre la base de datos y el servidor web, e intercepta las llamadas a la instancia y maneja las solicitudes.
Spring genera automáticamente código para usted basado en sus archivos de configuración XML que definen una fábrica SpringMethodAutoGeneration que intercepta las llamadas a la instancia y crea métodos dinámicos que calculan SQL sobre la marcha.
SpEL (Spring Expression Language) se ejecuta en la JVM y puede actuar como un reemplazo directo de Groovy u otros lenguajes.
SpEL (Spring Expression Language) admite operadores booleanos y relacionales y expresiones regulares, y se utiliza para consultar un gráfico de objetos en tiempo de ejecución.
SpEL (Spring Expression Language) le permite construir, configurar y ejecutar tareas como la construcción de artefactos y la descarga de dependencias de objetos.
SpEL (Spring Expression Language) transpila nativamente un lenguaje JVM a otro, lo que permite una mayor flexibilidad.
Q7. El proceso de vincular aspectos con otros objetos para crear un objeto asesorado se llama
encadenamiento dinámico
unión
tejido
intercalación
Q8. ¿Cómo se usan los proxies dinámicos JDK y los proxies CGLIB en Spring?
El proxy dinámico JDK puede interceptar solo interfaces, por lo que se utiliza si el objetivo implementa al menos una interfaz. Un proxy CGLIB puede crear un proxy mediante la subclase y se utiliza si el objetivo no implementa una interfaz.
Solo se utilizan proxies dinámicos JDK en el Ciclo de Vida de Beans de Spring. Los proxies CGLIB se utilizan solo para integrarse con otros frameworks.
Solo se utilizan proxies CGLIB en el Ciclo de Vida de Beans de Spring. Los proxies dinámicos JDK se utilizan solo para integrarse con otros frameworks.
El proxy dinámico JDK solo puede usar una clase abstracta extendida por un objetivo. Un proxy CGLIB puede crear un proxy a través del entretejido de bytes y se utiliza si el objetivo no extiende una clase abstracta.
Q9. ¿Cuál de estos no es un método válido en la interfaz JoinPoint?
getArgs()
getExceptions()
getSignature()
getTarget()
Q10. ¿En qué orden se ejecutan el método anotado con @PostConstruct, el método del parámetro init-method en los beans y el método afterPropertiesSet()?
No puedes usar estos métodos juntos, debes elegir solo uno.
Q11. ¿Cuál es la función de la anotación @Transactional a nivel de clase?
Es un atributo de transacción configurado por el archivo de configuración spring.security.transactions.xml que utiliza la implementación de transacción y el código de validación de Spring.
Es una transacción que debe validar activamente por el bytecode de una transacción usando la clase TransactionBytecodeValidator de Spring. El comportamiento de transacción predeterminado se revierte en caso de excepción de validación pero se compromete en caso de validación adecuada.
Crea un proxy que implementa la misma interfaz(es) que la clase anotada, lo que permite a Spring inyectar comportamientos antes, después o alrededor de las llamadas a métodos en el objeto que se está proxificando.
Es una transacción que debe ser validada activamente por la clase TransactionValidator de Spring usando el código de validación de transacción de Spring. El comportamiento de transacción predeterminado se revierte en caso de excepción de validación.
Q12. ¿Cuál es un ejemplo válido del resultado de este código (ignorando las declaraciones de registro)?
Explicación: El método SpringApplication.run devuelve el Contexto creado, por lo que el método main seguirá ejecutándose e imprimirá "startup". La clase Print no es un Bean de Spring, porque no está anotada con @Component, por lo que no se inicializará.
Q13. ¿Qué declaración println eliminaría para evitar que este código arroje una excepción de puntero nulo?
Se lanza una excepción InvalidParameterNameMappingException en tiempo de ejecución.
barfoo
foobar
Se devuelve un código de estado 400 Bad Request.
Q17. ¿Cuál es el propósito de la anotación @Lazy y por qué la usarías?
Evita que un bean se cree e inyecte hasta que ejecute un comando CLI específico. Reduce la complejidad en la aplicación.
Se puede aplicar a un bean para que el bean no se persista en la base de datos. Reduce el número de operaciones en la base de datos.
Se puede aplicar a un bean para que el bean no se cree e inyecte hasta que sea necesario. Puede ayudar a acelerar el tiempo de inicio de su aplicación.
Evita que un bean se cree e inyecte hasta que reciba una solicitud HTTP a un gancho de devolución de llamada. Reduce la huella de disco.
Q18. ¿Qué es la inyección de dependencias?
un método mediante el cual los objetos definen dependencias que necesitan como abstracciones que permiten que el framework los instancie y configure en un lugar central en tiempo de ejecución.
un paradigma donde el código dependiente se inyecta en el bytecode de una aplicación Java en un servidor remoto.
una forma de inyectar dependencias remotas en un archivo JAR preempaquetado desde el sistema de archivos.
una forma de inyectar dependencias remotas en un archivo WAR preempaquetado desde el sistema de archivos.
Q19. ¿Qué es un servicio web RESTful?
Transferencia de Estado de Empresa Reactiva es un servicio web que comprende un conjunto de pautas y restricciones técnicas para servicios web que monitorean y alertan de un conjunto de recursos críticos para la misión.
Transferencia de Estado Representacional es un estilo arquitectónico para crear servicios web que incluye arquitectura cliente-servidor, ausencia de estado, capacidad de almacenamiento en caché, un sistema en capas y una interfaz uniforme.
Transferencia de Estado Enumerado Redundante es un servicio web que proporciona redundancia en caso de falla y describe restricciones técnicas para servicios web que tienen acceso a recursos.
Transferencia de Estado de Empresa Reactiva es un servicio web que comprende un conjunto de pautas y restricciones técnicas para servicios web que tienen acceso a recursos y son asincrónicos por naturaleza.
Q20. ¿Qué sucede cuando una clase está anotada con la anotación @Controller?
Se define una definición de bean de controlador en el WebApplicationContext del servlet. La clase se marca como un componente web y puede asignar solicitudes a métodos del controlador.
Se define una definición de bean de controlador en el Contexto Web, y el Servlet Web se marca como un componente que lee solicitudes de controlador asignadas desde un archivo de configuración XML.
Se define una definición de bean de controlador en el Contexto de Tomcat, y el Servlet de Controlador se marca como un
componente web que lee solicitudes de controlador asignadas desde un archivo de configuración YAML.
Se define una definición de bean de controlador en el Contexto del Servlet, y el Servlet de Controlador se marca como un componente que lee solicitudes de controlador asignadas desde un archivo de configuración XML.