top 48 spring interview questions
Lista de las preguntas y respuestas de la entrevista de primavera más frecuentes para ayudarlo a prepararse para la próxima entrevista:
En este artículo, aprenderemos sobre el Spring Framework más popular y ampliamente utilizado. Incluye las preguntas Spring Framework y Spring MVC para principiantes y profesionales experimentados. Sin embargo, antes de profundizar en la parte de primavera, comprendamos qué es un marco y por qué necesitamos un marco adicionalmente.
Un marco en términos simples puede entenderse como un cierto límite que ya está construido para que otras cosas vengan y se acumulen para realizar una determinada acción.
En la terminología del software, un Framework se puede definir como una determinada aplicación que ya está desarrollada y que contiene muchas funcionalidades y características para soportar cualquier aplicación que se encuentre en el modo de desarrollo.
Marco de primavera
Un marco contiene varias clases y componentes listos para usar, que un desarrollador no necesita crear para desarrollar una aplicación, reduciendo así una gran cantidad de complejidad del código y haciendo que la aplicación sea fácil de mantener. También ahorra tiempo, por lo que se logra una reducción de costos.
Primavera Framework se conoce como un marco ligero debido a su pequeño tamaño y alta efectividad. Es de código abierto y, por lo tanto, proporciona una infraestructura sólida para desarrollar aplicaciones Java de una manera sencilla y fácil. Proporciona soporte a otros marcos diferentes como Hibernate, Struts, EJB, etc.
Está dividido en ciertos módulos para lograr múltiples cosas simultáneamente. Los módulos Spring incluyen el módulo principal, el módulo Web, el módulo de integración de datos, el módulo de prueba, el módulo AOP, etc. Cada módulo tiene su propio propósito según los requisitos de los desarrolladores.
En este artículo, cubriremos todos los temas importantes en Spring que son importantes desde el punto de vista de la entrevista.
Cubriremos qué es un Spring Framework, sus tipos de módulos, el concepto de inyección de dependencia e inversión de control, bean y su ciclo de vida, diferentes alcances del bean, concepto de cableado automático, manejo de eventos en primavera, Spring AOP, gestión de transacciones de Spring. , Spring MVC y su arquitectura fluyen.
También cubriremos la anotación importante utilizada en diferentes módulos de resorte y configuraciones, y sobre el contenedor de resorte.
Aquí se han explicado algunos ejemplos de código de conceptos muy importantes que le ayudarán a explicarlos de forma detallada. Se han proporcionado enlaces adicionales para consultar el ejemplo de muestra de Spring MVC. Hemos explicado el concepto de servlet de despachador de una manera muy refinada.
Con estas respuestas nítidas y de punto a punto, podrá responder la mayoría de las preguntas de la entrevista con confianza.
Preguntas y respuestas más populares de la entrevista de primavera
Exploremos las preguntas de la entrevista del marco de Spring más frecuentes con respuestas detalladas y ejemplos.
P # 1) ¿Qué es un marco? Explica el marco de Spring.
Responder: Framework es un software ya construido que ayuda a los desarrolladores a agregar más funcionalidades a sus aplicaciones utilizando clases y bibliotecas ya construidas.
Spring Framework es un marco de inyección de dependencias, que ayuda a los desarrolladores a desarrollar aplicaciones basadas en Java. Spring es un marco de código abierto para Java Enterprise.
P # 2) ¿Por qué se prefiere Spring sobre los otros marcos?
Responder: Se prefiere Spring sobre los otros marcos debido a las siguientes características:
- Tamaño muy pequeño y ligero.
- Ayuda a lograr una aplicación débilmente acoplada mediante inversión de control.
- Soporte AOP
- Marco MVC
- Buena función de gestión de transacciones
- Contenedor de primavera
- Manejo de excepciones
P # 3) Categorice los diferentes tipos de módulos en Spring Framework.
Responder: los cinco módulos principales en Spring Framework se mencionan a continuación:
- Spring Core Container que incluye core, beans, contexto y lenguaje de expresión.
- AOP y Aspectos.
- Módulo de integración de datos que incluye JDBC, OXM, ORM, módulos de transacciones, etc.
- Módulo web que incluye web, servlet, struts y portlet.
- Prueba
P # 4) Explique el archivo de configuración de Spring.
Responder: Un archivo XML contiene toda la información sobre las clases junto con su proceso de configuración y cómo estas clases han interactuado con las otras clases.
P # 5) Explique el concepto de inyección de dependencia.
Responder: En primer lugar, la inyección significa transferir la dependencia a cualquier objeto dependiente.
La inyección de dependencia es un tipo de patrón de diseño que ayuda a desarrollar una aplicación poco acoplada. Es una implementación de inversión de control que ayuda a resolver dependencias en una aplicación.
Evita la creación de objetos propios y más bien guía cómo se deben crear los objetos a través de configuraciones y luego el COI decide qué servicios deben coincidir con qué componentes.
La inyección de dependencia es la característica principal de Spring Framework.
P # 6) ¿Cuáles son los diferentes tipos de inyección de dependencia? Explicarlos.
Responder: Hay dos tipos de inyección de dependencia. Son los siguientes:
- Inyección de dependencia basada en la construcción - Se logra cuando el contenedor Spring invoca un constructor con argumentos y cada uno tiene alguna dependencia de la otra clase.
- Inyección de dependencia basada en setter Se logra cuando el contenedor Spring llama al método setter de beans después de invocar un constructor sin argumentos para instanciar el bean.
P # 7) ¿Cuál es bueno para usar - Constructor o dependencia basada en Setter?
Responder: Ambos tipos de inyección de dependencia se pueden utilizar en consecuencia según las situaciones. Es una regla general que para la dependencia obligatoria, se usa la inyección de dependencia basada en el constructor, mientras que para la dependencia opcional, se usa la inyección de dependencia basada en el establecedor.
P # 8) ¿Cuáles son las ventajas de la inversión de control?
Responder: Hay varias ventajas de IOC, y algunos de ellos se mencionan a continuación:
- IOC es capaz de reducir la complejidad del código reduciendo el código en la aplicación.
- Al usar IOC en la aplicación, las pruebas se vuelven más simples y fáciles, ya que no se requieren búsquedas ni singletons.
- IOC logra un acoplamiento flexible y eso, a su vez, hace que el código sea más fácil de mantener.
- IOC admite la creación de instancias temprana y la carga tardía de servicios.
P # 9) Explique el concepto de AOP.
Responder: AOP significa Programación Orientada a Aspectos. Es otro enfoque de programación que ayuda a los desarrolladores a reestructurar el comportamiento de responsabilidades como la gestión de transacciones y el registro.
AOP se implementa para asuntos transversales, es decir, la definición se proporciona en un solo lugar y, funcionalmente, se puede usar en muchos lugares con la ayuda del script.
aplicación de descarga de mp3 gratis para android
P # 10) Explique el uso de Spring Container.
Responder: Es la parte central y la columna vertebral del marco Spring. El contenedor Spring ayuda a crear objetos, combinar los objetos, administrar sus configuraciones y completar el ciclo de vida de creación, implementación y destrucción.
El contenedor Spring toma la ayuda de Dependency Injection para administrar los componentes que construyen la aplicación.
P # 11) ¿Cuáles son los diferentes tipos de contenedores IOC?
Respuesta: El contenedor de IOC es de dos tipos, como se menciona a continuación:
- Fábrica de frijoles - Es un contenedor simple y proporciona soporte para la inyección de dependencia.
- Spring ApplicationContext - Es un contenedor avanzado que agrega características complejas como decodificar mensajes textuales de archivos y es capaz de publicar eventos para los oyentes.
P # 12) ¿Cuál es la implementación del contenedor Bean Factory?
Responder: La clase XmlBeanFactory es la implementación más importante de la fábrica de frijoles y es útil para leer datos de los archivos XML.
P # 13) ¿Cuál es la implementación del contenedor ApplicationContext?
Responder: Algunos de los contenedores ApplicationContext más utilizados incluyen FileSystemXmlApplicationContext, ClassPathXmlApplicationContext y WebXmlApplicationContext, etc.
P # 14) ¿Qué son los frijoles en primavera?
Responder: Los Spring Beans no son más que simples objetos Java que son administrados por el contenedor Spring.
Ejemplo:
|_+_|P # 15) ¿Cuáles son los componentes en Bean Definition?
Responder: Básicamente, la definición de bean contiene los metadatos de configuración que utiliza el contenedor Spring para conocer detalles como el proceso de creación de bean, el ciclo de vida del bean y las dependencias de un bean.
P # 16) ¿Cuáles son las formas en que los metadatos de configuración se pueden proporcionar al contenedor Spring?
Responder: Los metadatos de configuración se pueden proporcionar al Spring Container de tres maneras, es decir, a través de un archivo de configuración basado en XML, configuración basada en anotaciones y configuración basada en Java.
P # 17) ¿Cuál es la sintaxis para agregar un bean en la aplicación Spring?
Respuesta: Sintaxis:
P # 18) ¿Cuáles son los tipos de alcance de bean?
Responder: El alcance del bean se puede definir como singleton y prototipo, solicitud, sesión, sesión global, etc.
- El prototipo se declara cuando se requiere una nueva instancia de bean cada vez.
- Singleton se declara cuando se usa la misma instancia de bean cada vez.
- La solicitud se utiliza para el alcance de la solicitud HTTP.
- La sesión se utiliza para el ámbito de la sesión HTTP.
- La sesión HTTP global establece el alcance del bean en la sesión HTTP global.
P # 19) ¿Cuál es el alcance predeterminado de bean en Spring? Además, ¿están sincronizados?
Responder: El alcance predeterminado de bean en Spring es Singleton. Además, no están sincronizados, es decir, no son seguros para subprocesos.
P # 20) ¿Cuál es el ciclo de vida de un frijol en primavera?
Responder: El ciclo de vida de un Spring Bean sigue ciertos pasos, como se menciona a continuación:
- Creación de instancias: el contenedor de Spring del archivo XML encuentra la definición del bean y luego se crea una instancia del bean.
- Rellenar propiedades: el contenedor Spring rellena todas las propiedades mencionadas en la definición del bean con la ayuda de la inyección de dependencia.
- Estableciendo el nombre de Bean.
- Configuración de la fábrica de frijoles.
- Preinicialización e inicialización de bean.
- Después de la inicialización del bean.
- Destruye el bean llamando al método destroy ().
P # 21) ¿Qué quieres decir con frijoles internos?
Responder: El bean que se define dentro de la propiedad o el elemento constructor se denomina bean interno.
No se requiere un ID o nombre específico para el bean interno, de hecho, el contenedor Spring evita esos valores junto con la definición del alcance. Se dice que los beans internos son anónimos y su alcance siempre se define como prototipos.
P # 22) ¿Cuáles son las formas de insertar el concepto de colección en Spring?
Responder: Básicamente, hay cuatro elementos de colección para insertar en Spring.
Son:
- elemento - Cablea el conjunto de valores eliminando los duplicados de ellos.
- elemento - Es útil para insertar o inyectar valores y también permite duplicar valores.
- elemento - Se utiliza para insertar una clave o par nombre-valor que puede ser de cualquier tipo.
- elemento - Se utiliza para insertar pares de clave o nombre-valor, pero el tipo solo debe ser la cadena.
P # 23) Explique el concepto de Autowiring.
Responder: El cableado automático es un concepto esencial en el marco de Spring. Se utiliza para inyectar implícitamente la dependencia de objetos mediante el uso de una inyección basada en constructor o establecedor. El cableado automático funciona solo con tipos de referencia, por lo que no es útil para inyectar valores para tipos primitivos y de cadena.
La mejor ventaja del autowire es que los desarrolladores necesitan escribir menos código ya que autowire se encarga de la inyección de dependencias. Además, el programador no ha controlado el proceso en ese momento.
|_+_|Lectura recomendada => Anotación Spring Autowired, Nombre del cableado automático Spring Bean
P # 24) Explique los diferentes modos de Autowiring.
Responder: El cableado automático viene con cinco modos, que guían al contenedor Spring para usar la función de inyección de dependencia.
- Sin modo - Se llama a ser la configuración predeterminada e implica el cableado automático desactivado y se debe usar un bean explícito para el cableado de referencia.
- por nombre - El cableado automático se puede realizar por nombre de propiedad. El contenedor Spring busca en el archivo de configuración XML los beans cuyo atributo autowire está establecido en byName.
- por tipo - El cableado automático se puede realizar por tipo de propiedad. El contenedor Spring busca en el archivo de configuración XML los beans cuyo atributo autowire está establecido en byType.
- Constructor - Es casi lo mismo que byType pero el tipo es aplicable para argumentos de constructor si no se encuentra ningún tipo de argumento de constructor en el contenedor, entonces se genera un error.
- Detección automática - Se refiere al comportamiento de Spring mostrando su prioridad de elección. En primer lugar, Spring elige el cableado automático utilizando el constructor, si no sucede, cambia la prioridad a byType.
P # 25) ¿Existe alguna limitación de cableado automático? En caso afirmativo explicar.
Responder: Sí, existen algunas limitaciones del cableado automático que se mencionan a continuación:
- Siempre existe la posibilidad de anular.
- El desarrollador no podrá conectar automáticamente las propiedades primitivas y Spring.
- El cableado automático se vuelve complejo cuando se utiliza en grandes aplicaciones en comparación con el cableado explícito.
P # 26) ¿Qué es el cableado de anotación y cómo lo activamos?
Responder: El uso alternativo de XML son las anotaciones en las que los desarrolladores mueven toda la configuración en una clase con la ayuda de anotaciones para una clase o método en particular.
Se activa en el archivo de configuración de Spring declarando.
P # 27) ¿Cuál es el uso de la anotación @Required?
Responder: Se utiliza para indicar que en el momento de la configuración, la propiedad del bean debe completarse mediante el cableado automático o el valor de propiedad explícito en la definición del bean.
que es un archivo .7z
Ejemplo:
|_+_|P # 28) ¿Cuál es el uso de la anotación @Autowired?
Responder: Ayuda a tener un mejor control y comprensión de cómo y dónde se debe lograr el cableado automático. Se puede usar para el bean autowire en cualquier método, propiedad o constructor de establecimiento.
Ejemplo:
|_+_|P # 29) ¿Cuál es el uso de la anotación @Qualifier?
Responder: Se usa principalmente cuando el desarrollador está obligado a crear muchos beans del mismo tipo y desea conectar solo uno de ellos con la propiedad, en este escenario @Qualifier con @Autowired se usa para eliminar la confusión y especificar el bean exacto que se conectará .
P # 30) ¿Cómo se maneja un evento en Spring?
Responder: El manejo de eventos se logra a través de la clase ApplicationEvent y la interfaz ApplicationListner.
Cuando el bean implementa ApplicationListner, ApplicationEvent se genera en ApplicationContext y notifica que se genera el bean.
P # 31) ¿Cuáles son los ejemplos de eventos de primavera estándar?
Responder: Hay muchos eventos Spring estándar que sirven a sus respectivos propósitos y pocos de ellos son ContextStartedEvent, ContextRefreshedEvent, ContextStoppedEvent, ContextClosedEvent, RequestHandledEvent, etc.
Q # 32) ¿Qué denota el Punto de unión?
Responder: Denota un punto específico donde se puede conectar el aspecto AOP. Es la ubicación original en la aplicación donde se pueden tomar algunas acciones utilizando el marco AOP.
P # 33) ¿Qué es la plantilla JDBC y cómo usarla en Spring?
Responder: La plantilla JDBC es una plantilla proporcionada por Spring Framework para usar JDBC de manera más eficiente.
La plantilla JDBC se usa generalmente para la conversión de datos de bases de datos en objetos, la ejecución de declaraciones preparadas y que se pueden llamar, y también es compatible con el manejo de errores para una base de datos.
P # 34) ¿Qué es la gestión de transacciones en Spring? Explique los diferentes tipos de Gestión de transacciones.
Responder: La transacción es básicamente una operación realizada sobre algunos datos en la base de datos. La gestión de transacciones forma parte del sistema de gestión de bases de datos relacionales y se utiliza para garantizar la ética y la coherencia de los datos.
La ventaja principal de Transaction Management es que admite la gestión de transacciones declarativa y programática y API como Hibernate, JTA y JDBC mediante una integración correcta.
Hay dos tipos de gestión de transacciones, que se mencionan a continuación:
- Gestión de transacciones programáticas se utiliza para ayudar a la transacción en términos de codificación o secuencias de comandos.
- Gestión declarativa de transacciones se utiliza para aislar el código comercial y las transacciones.
P # 35) ¿Cuál es la gestión de transacciones más utilizada?
Responder: Los desarrolladores utilizan ampliamente la gestión declarativa de transacciones.
P # 36) Explique el marco Spring MVC.
Responder: MVC son las siglas de Model, View y Controller. El marco Spring MVC se utiliza para desarrollar aplicaciones web con buenas configuraciones y flujo de arquitectura. Es muy flexible en integración con los otros marcos.
P # 37) Explique la arquitectura Spring MVC.
Responder: La arquitectura Spring MVC se basa en Modelo, Vista y Controlador.
(imagen fuente )
El enlace anterior también tiene un ejemplo simple del flujo completo de Spring MVC como referencia.
El flujo de la Arquitectura Spring va de la siguiente manera :
- El servlet del despachador recibe la solicitud.
- El servlet Dispatcher envía la solicitud al mapeo del controlador que proporciona la respuesta en términos del nombre de la clase del controlador.
- Ahora la solicitud se envía al controlador desde el servlet del despachador, por lo tanto, el controlador procesa la solicitud y devuelve el objeto de vista del modelo como respuesta al servlet del despachador.
- Nuevamente, el servlet del despachador envía la solicitud para ver el resolutor para obtener la página de vista correcta.
- Por último, el servlet del despachador envía el objeto modelo recibido a la página del navegador para mostrar el resultado.
@Controller y @RequestMapping son las dos anotaciones principales que se utilizan en el flujo de Spring MVC.
P # 38) ¿Cuál es el uso del Dispatcher Servlet?
Responder: Dispatcher Servlet se utiliza para manejar todas las solicitudes y respuestas HTTP entrantes del cliente. En general, controla todas las comunicaciones desde el controlador al controlador para ver el resolutor en la página de vista real.
P # 39) Explique el uso de las anotaciones @Controller y @RequestMapping en Spring MVC.
Responder:
@Controlador - Denota esa clase particular que se comporta como un controlador.
@RequestMapping - Se usa básicamente para mapear una URL a toda la clase o a cualquier método en particular.
P # 40) Explique la inversión de control y la inyección de dependencia con un ejemplo simple.
Responder: Como sabemos, se usa para eliminar la dependencia de una aplicación.
Código sin DI:
|_+_|Student y Address usarán la misma instancia, por lo tanto, se creará una dependencia aquí.
Código con DI:
|_+_|No se crea ninguna instancia aquí, por lo que no se crea dependencia, por lo que el código se vuelve más flexible y poco acoplado.
P # 41) Explique los consejos y sus tipos.
Responder: Cualquier acción tomada por AOP se denomina Aviso.
Hay cinco tipos de consejos que se mencionan a continuación:
- Antes del consejo.
- Después de un consejo.
- Después de devolver el consejo.
- Alrededor de consejos.
- Lanza un consejo.
P # 42) ¿Cuáles son los diferentes tipos de mapeo relacional de objetos que admite Spring?
Responder: Spring admite ORM como Hibernate, IBatis, TopLink, Java Data Object, OJB y JPA, etc.
P # 43) ¿Por qué se prefiere Spring a los marcos o los beneficios principales de Spring Framework?
Responder: Se prefiere la primavera al marco por varias razones. Algunos de ellos se mencionan a continuación:
- Spring resuelve muchos problemas complejos de desarrollo de aplicaciones mediante sus submódulos como núcleo, web, acceso a datos, prueba, etc.
- Spring ofrece clases de POJO para el desarrollo, lo que a su vez reduce el estrés.
- Potente integración con los otros marcos.
- Buenas pruebas de aplicación.
- Función de gestión de transacciones y modularidad.
Q # 44) ¿Qué quieres decir con Spring Batch?
Responder: Spring Batch también es un marco liviano que se crea para respaldar el desarrollo de aplicaciones sólidas por lotes para el sistema empresarial.
Spring Batch mejora la productividad, el enfoque para el desarrollo y hace que ciertas características que los usuarios han aprendido en Spring sean mucho más fáciles.
P # 45) ¿Cuál es el uso principal del marco de trabajo por lotes de Spring?
Responder: El lote de primavera se utiliza principalmente para leer y escribir archivos, y también para realizar ciertas operaciones en la base de datos como lectura o escritura, transformación de datos, creación de informes, también importar y exportar datos, etc.
P # 46) Explique la arquitectura de lotes de Spring.
Responder: La arquitectura por lotes de Spring comprende principalmente tres capas de componentes, es decir, una aplicación, un núcleo y una infraestructura.
Una aplicación consta de secuencias de comandos y trabajos por lotes creados por los desarrolladores a través del lote de primavera. El núcleo contiene todas las clases importantes y necesarias que se requieren para iniciar y controlar un trabajo por lotes. Por último, la infraestructura maneja tanto la aplicación como el núcleo, incluidos los servicios, lectores, escritores, etc.
Q # 47) Explique Tasklet en Spring Batch.
Responder: Tasklet es una interfaz, que a menudo se llama para realizar una sola tarea, como limpiar, eliminar o configurar recursos durante el tiempo de ejecución.
P # 48) Explique el principio de funcionamiento de Spring Batch.
Responder: El lote de primavera funciona principalmente en cuatro pasos como se menciona a continuación:
- En primer lugar, step-it guía el trabajo para que haga su trabajo respectivo.
- Tiene una interfaz itemReader para proporcionar los datos.
- Tiene la interfaz itemProcessor para una transformación de datos.
- Por último, tiene una interfaz itemStreamWriter para generar el resultado deseado.
Conclusión
Esperamos que este artículo le haya brindado información clara sobre Spring Framework. Ha explicado Spring y sus características, Aplicaciones en las que se usa Spring y por qué es esencial para el desarrollo de aplicaciones.
Módulos Spring, Inyección de Dependencias, Inversión de Control, Gestión de Transacciones, Programación Orientada a Aspectos, concepto de acoplamiento suelto, Arquitectura Spring MVC, Anotaciones importantes, beans y Autowiring.
Aquí se incluyen todas las preguntas importantes de la entrevista de Spring que cubren todos los temas mencionados anteriormente. Siempre es recomendable explicar cualquier concepto con la ayuda de un ejemplo de código, que le da una mejor comprensión al entrevistador.
Espero que este artículo te ayude a aclarar tus entrevistas. ¡Todo lo mejor!
Lectura recomendada
- Preguntas y respuestas de la entrevista
- Algunas preguntas interesantes de la entrevista sobre pruebas de software
- 20 preguntas de entrevista selectiva de control de calidad para aclarar la entrevista en 2021
- Preguntas y respuestas de la entrevista de prueba ETL
- Las 25 preguntas principales de la entrevista de Perl que debe preparar en 2021
- Las 25 preguntas principales de la entrevista de ingeniería de software (ÚLTIMO 2021)
- 36 preguntas principales de la entrevista de Jenkins (para 2021)
- Las 12 preguntas principales de la entrevista de Mockito (Entrevista de marco de burla)