Las 35 principales preguntas y respuestas de la entrevista de primavera: Guía definitiva 2022

Publicado: 2021-01-08

¿Tienes una próxima entrevista relacionada con Spring Framework? Tal vez haya aterrizado en esta página porque está buscando las principales preguntas de la entrevista de Spring Framework . En nuestro blog, discutiremos las preguntas y respuestas más frecuentes de las entrevistas de Spring.

Si pasa por estos, es probable que se desempeñe increíble en su entrevista. Antes de comenzar, permítanos brindarle un resumen de la demanda general de Spring Framework en el mercado actual.

Leer: Demanda de desarrolladores de pila completa en India

Spring hace que el lenguaje de programación Java sea más rápido, más simple y seguro para todos. Su enfoque principal es la velocidad, pero es simple y productivo. Debido a esto, se ha convertido en uno de los frameworks de Java más populares del mundo. Las bibliotecas son flexibles y fiables. Se usa en muchos lugares, como compras en línea, automóviles conectados y tecnologías más innovadoras.

También se jacta de sus contribuciones a grandes gigantes como Amazon, Google y Alibaba. Además, la comunidad de Spring es enorme. Comprende todos los grupos de edad y es muy diversa. Encontrará excelentes recursos y soporte en línea para avanzar al siguiente nivel y facilitar su viaje.

Si eres un programador de Java, entonces Spring Framework es crucial para ti. Muchas empresas requieren que el programador comprenda Spring Framework o al menos conozca algunos de sus módulos.

Aquí hay algunas de las principales preguntas y respuestas de la entrevista de Spring que puede esperar que haga su entrevistador.

Tabla de contenido

Preguntas y respuestas de la entrevista de primavera 2020

P.1 ¿Cuáles son las diferentes versiones que puede encontrar de Spring Framework y cuáles son sus principales características?

Las tres versiones son Spring 2.5, Spring 3.0 y Spring 4.0.

Spring 2.5 fue la primera versión que admitía anotaciones. Fue lanzado en el año 2007. Spring 3.0 utilizó actualizaciones en Java5 y además ofreció soporte a JEE6. Se lanzó dos años después, en 2009. Spring 4.0 fue la variante principal para ofrecer soporte completo a Java 8. Se lanzó en el año 2013.

Q.2 Describa o defina Spring Framework

Es una plataforma Java de código abierto. Se utiliza como una opción para tecnologías Java empresariales pesadas. Para decirlo en términos simples, simplifica el desarrollo de Java porque es liviano. Los desarrolladores pueden desarrollar aplicaciones usando Spring Framework e implementarlas incluso en computadoras con recursos y memoria de CPU restringidos. Además, ofrece soporte para varios otros marcos, incluidos, entre otros, Tapestry, JSF, EJB, Hibernate, Struts y más.

Leer: Ideas y temas de proyectos de pila completa

P.3 ¿Cuáles son las ventajas de Spring Framework?

  • Spring Framework es de código abierto y no está sujeto a ningún proveedor.
  • Puede usar solo lo que realmente necesita debido a la arquitectura en capas que usa.
  • Spring Framework usa POJO, lo que hace que la prueba de aplicaciones sea mucho más fácil.
  • Puede usarlo con todos los demás marcos de Java con Spring Frameworks. No impone restricciones ni limitaciones.
  • Spring Framework es un marco modular. Es muy flexible.

P.4 ¿Cuáles son las diversas características de Spring Framework?

  • Ligero: Spring Framework es liviano cuando hablamos de su transparencia y tamaño.
  • Inversión de control: Es el principio donde se invierte el flujo de control de un programa. Aquí, las fuentes externas como servicios, marco y otros componentes controlan el flujo de un programa en lugar del programador.
  • Programación orientada a aspectos: la programación orientada a aspectos en Spring admite el desarrollo vinculante al dividir los servicios del sistema de la lógica comercial de la aplicación.
  • Contenedor: El contenedor es el núcleo de Spring Framework. Es el contenedor que crea los objetos, los une, los configura y se encarga de su ciclo de vida completo, que es desde la creación hasta el final.
  • MVC Framework: el marco de aplicaciones web MVC de Spring Framework es fácil de usar y se puede configurar. Puede usar otros marcos en lugar de elegir Spring MVC Framework.
  • Gestión de transacciones: Spring Framework utiliza una capa de abstracción genérica para la gestión de transacciones. Puede usar el soporte de transacciones de Spring en entornos con menos contenedores.
  • Manejo de excepciones de JDBC: no necesita manejar ninguna excepción relacionada con la base de datos explícitamente. Spring JDBC Framework lo maneja usando el manejo de excepciones de JDBC.

Leer: Preguntas de la entrevista para desarrolladores de Full Stack

P.5 ¿Cuántos módulos puede encontrar en Spring Framework? Nómbralos.

Puede encontrar veinte módulos que se clasifican en Core Container, Web, Data Access/Integration, AOP (Programación orientada a aspectos), Instrumentación y Prueba.

Spring Core Container: como su nombre indica, es el contenedor principal de Spring Framework. se compone de

  • Núcleo de resorte
  • frijol de primavera
  • Lenguaje de expresión de primavera
  • Contexto de primavera

Web: Esta capa da soporte para crear una aplicación web. Se compone de los siguientes módulos:

  • Web
  • Web – MVC
  • Web – Zócalo
  • Web – Portlet

Acceso/Integración de datos: esta capa brinda soporte para comunicarse con la base de datos. Se compone de los siguientes módulos:

  • Conectividad de base de datos Java – JDBC
  • Mapeo relacional de objetos – ORM
  • Asignadores XML de objetos – OXM
  • Servicio de mensajería de Java – JMS
  • Transacción

Programación orientada a aspectos: en esta capa, los desarrolladores pueden usar puntos de corte, consejos, etc. para desacoplar el código.

Instrumentación: esta capa brinda soporte a las implementaciones del cargador de clases y la instrumentación de clases.

Prueba: esta capa da soporte a las pruebas con TestNG y Junit.

También puede encontrar otros nodos misceláneos como:

Mensajería: este módulo ofrece asistencia para STOMP. También ayuda como un modelo de programación de anotaciones que se requiere para enrutar y procesar mensajes STOMP de clientes WebSocket.

Aspectos: este módulo ofrece soporte para integrarse con AspectJ.

P.6 ¿Qué es un archivo de configuración de Spring?

Es básicamente un archivo XML. Puedes encontrar toda la información sobre las clases en este archivo. Describe además cómo se configuran estas clases y cómo se conocen entre sí. Los archivos de configuración XML están detallados, por lo que es necesario mantenerlos limpios. De lo contrario, administrarlos se vuelve difícil si su proyecto es grande.

P.7 Describa los diferentes componentes de una aplicación Spring.

Por lo general, una aplicación Spring se compone de los siguientes componentes:

  • Interfaz: Todas las funciones están definidas en la interfaz.
  • Clase Bean: Puede encontrar propiedades aquí junto con las funciones set y get.
  • Programación orientada a aspectos de primavera (AOP): brinda la funcionalidad de preocupaciones transversales.
  • Archivo de configuración de Bean: este archivo contiene los detalles de las clases y cómo se pueden configurar.
  • Programa de usuario: un programa de usuario utiliza la función.

P.8 Explique las diversas formas de usar Spring Framework

Spring Framework se puede usar de varias maneras, como:

  • Spring Framework se puede utilizar como una aplicación web completa de Spring.
  • Spring Framework se puede usar como un marco web de terceros, utilizando el nivel medio de Spring Frameworks.
  • Spring Framework se puede utilizar para uso remoto.
  • Spring Framework se puede usar como Enterprise Java Bean, que puede envolver los POJO existentes.

P.9 ¿Qué es el contenedor Spring IOC?

El contenedor es el núcleo de Spring Framework. Es el contenedor que crea los objetos, los vincula, los configura y se encarga de su ciclo de vida completo, que es desde la creación hasta el final.

El contenedor Spring usa la inyección de dependencia para administrar los componentes que crean una aplicación. El contenedor obtiene instrucciones sobre qué objetos crear, configurar y llamar leyendo los metadatos de configuración proporcionados por anotaciones Java, código Java o XML.

P.10 ¿Qué es una inyección de dependencia?

En Inyección de dependencia, en lugar de crear objetos, simplemente los describe sobre cómo crearlos. Los desarrolladores deben describir qué servicios requiere un componente en particular en el archivo de configuración. No hay necesidad de conectar los servicios a los componentes en el código directamente. Están conectados entre sí por el contenedor Spring IoC.

P.11 ¿En cuántos métodos se puede hacer Inyección de Dependencia?

Hay tres formas en que se realiza la inyección de dependencia:

  • Inyección de constructor
  • Inyección de Setter
  • Inyección de interfaz

Sin embargo, en Spring Framework, solo se utilizan inyecciones de constructor y setter.

P.12 ¿Qué hace que la inyección de constructor sea diferente de la inyección de setter?

Inyección de constructor Inyección de Setter
No hay inyección incompleta o limitada. Puede haber inyección incompleta o limitada.
No anula la propiedad setter. Anula la propiedad del constructor.
Crea una nueva instancia si se realiza algún cambio. No crea ninguna nueva instancia si se realiza un cambio.
Funciona mejor para muchas propiedades. Funciona mejor para menos propiedades.

P.13 ¿Cuántos tipos de contenedores IOC hay disponibles en Spring?

Por lo general, puede encontrar dos contenedores IOC, a saber:

  1. BeanFactory: BeanFactory es una especie de clase de fábrica que comprende un grupo de frijoles. Instancia el bean siempre que lo soliciten los clientes.
  2. ApplicationContext: la interfaz ApplicationContext se crea encima de la interfaz BeanFactory. Ofrece alguna funcionalidad adicional, además de la proporcionada por BeanFactory.

P.14 Cuéntenos sobre algunas diferencias entre BeanFactory y ApplicationContext.

BeanFactory ApplicationContext
Es una interfaz explicada en org.springframework.beans.factory.BeanFactory Es una interfaz explicada en org.springframework.context.ApplicationContext
Utiliza la inicialización Lazy Utiliza inicialización agresiva.
Da explícitamente un objeto de recurso usando la sintaxis Construye y administra objetos de recursos por sí mismo.
No ayuda a la internacionalización. Ayuda a la internacionalización
No ayuda a la dependencia basada en anotaciones. Ayuda a la dependencia basada en anotaciones.

P.15 ¿Cuáles son algunos de los beneficios de IoC?

Algunos de los beneficios de IoC son:

  • Reducirá la cantidad de código necesario en su aplicación.
  • Su aplicación es mucho más fácil de probar porque no necesita mecanismos de búsqueda de singletons o JNDI en sus casos de prueba de unidad.
  • Fomenta el acoplamiento suelto con un esfuerzo mínimo y el mecanismo menos intrusivo.
  • Ayuda a la instanciación ansiosa y la carga diferida de los servicios.

P.16 ¿Qué son los Frijoles Primavera?

Spring Beans son los objetos que sirven como columna vertebral de la aplicación del usuario. Los frijoles son controlados por el contenedor Spring IoC. Controlarlo significa que un contenedor Spring IoC los instancia, los configura, los conecta y los administra. Los beans se crean utilizando los metadatos de configuración que los usuarios proporcionan al contenedor.

P.17 ¿Cómo se proporcionan los metadatos de configuración al contenedor Spring?

Los metadatos de configuración se pueden proporcionar al contenedor Spring de una de las siguientes maneras:

  • Configuración basada en anotaciones: se pueden usar anotaciones en la clase relevante para describir el cableado del bean en la clase de componente en sí. No es la configuración predeterminada. Entonces, si desea usarlo, debe habilitarlo en el archivo de configuración de Spring antes de poder usarlo.
  • Configuración basada en XML: las dependencias y los servicios que requieren los beans se mencionan en los archivos de configuración. Estos están en formato XML. Se componen de muchas definiciones de beans y opciones de configuración específicas de la aplicación. Generalmente comienzan con una etiqueta de frijol.
  • Configuración basada en Java: las funciones principales en el nuevo soporte de configuración de Java de Spring Framework son los métodos anotados de @Bean y las clases anotadas de @Configuration.

P.18 ¿Cuántos ámbitos de bean admite Spring?

Es compatible con cinco ámbitos que son:

  • Singleton: esto da alcance para la definición de bean a una sola instancia por contenedor Spring IoC.
  • Prototipo: Esto da margen para que una sola definición de bean tenga cualquier número de instancias de objetos.

Los siguientes ámbitos están disponibles solo si los usuarios emplean un ApplicationContext compatible con la web.

  • Solicitud: Esto da alcance para una definición de bean a una solicitud HTTP.
  • Sesión: Esto da alcance para una definición de bean a una sesión HTTP.
  • Sesión global: Esto da alcance para una definición de bean a una sesión HTTP global.

P.19 Explique el ciclo de vida de Bean en Spring Bean Factory Container

  1. El contenedor Spring primero crea una instancia del bean a partir de la definición del bean en el archivo XML.
  2. Spring usando la inyección de dependencia llena todas las propiedades.
  3. La fábrica llama a setBeanName() dando la ID del bean si el bean ejecuta la interfaz BeanNameAware.
  4. La fábrica llama a setBeanFactory() creando una instancia de sí mismo si el bean ejecuta la interfaz BeanFactoryAware.
  5. Si hay algún BeanPostProcessor relacionado con el bean, se llama a los métodos preProcessBeforeInitialization().
  6. Si el bean especifica el método init, entonces se llama.
  7. Si hay algún BeanPostProcessor relacionado con el bean, se llama a los métodos preProcessAfterInitialization().

P.20 Explicar el cableado de Bean

El cableado de frijoles es cuando todos los frijoles se combinan dentro del contenedor Spring. El contenedor Spring debe comprender qué beans se requieren y cómo debe emplear la inyección de dependencia para vincular los beans.

P.21 ¿Qué es el cableado automático y los diferentes modos de cableado automático?

El contenedor Spring tiene la capacidad de conectar automáticamente las relaciones entre los beans de conexión. Spring puede resolver automáticamente los colaboradores de su bean al ver el contenido de BeanFactory.

Los diferentes modos de cableado automático de bean son:

  1. no: esta es la opción preseleccionada, lo que significa que no hay cableado automático. Debe usar una referencia de bean explícita para el cableado.
  2. byName: Inyecta la dependencia del objeto en base al nombre del bean. Empareja y conecta sus propiedades con los beans explicados por los nombres exactos en el archivo XML.
  3. byType: Como su nombre lo dice, inyecta la dependencia del objeto según el tipo. Hace coincidir y conecta una propiedad si el tipo coincide con uno de los nombres de los beans en un archivo XML.
  4. Constructor: un constructor inyecta la dependencia llamando al constructor de la clase. Tiene muchos parámetros.
  5. Detección automática: de forma predeterminada, el contenedor se conecta automáticamente mediante un constructor. Si falla, intenta conectarse automáticamente por byType.

P.22 ¿Cuáles son las restricciones o limitaciones del cableado automático?

Hay un par de limitaciones/restricciones a las que se enfrenta el uso de cableado automático como:

  • Posibilidad de invalidación: mediante el uso de las configuraciones <constructor-arg> y <property>, puede especificar dependencias. Anulará el cableado automático.
  • Tipo de datos primitivos: el tipo de datos primitivos, las clases y las cadenas no se pueden conectar automáticamente.
  • Naturaleza complicada: se prefiere el cableado explícito al cableado automático porque este último es de naturaleza confusa.

P.23 ¿Qué es la configuración de contenedores basada en anotaciones?

Una alternativa a las configuraciones XML, la configuración de contenedores basada en anotaciones, se usa para describir el cableado de un bean. El desarrollador transfiere la configuración a la clase del componente mediante el uso de anotaciones en la declaración del método, la clase o el campo.

P.24 ¿Cómo se activa el cableado de anotaciones en Spring?

El cableado de anotaciones está desactivado de forma predeterminada en el contenedor Spring. Por lo tanto, para usar el cableado basado en anotaciones, debe habilitarlo en el archivo de configuración de Spring configurando el elemento <context:annotation-config/>.

P.25 Explique la diferencia entre varias anotaciones como @Controller, @Component, @Repository y @Service en Spring.

@Controller: Esto indica una clase como controlador Spring Web MVC. Importa automáticamente los beans marcados con él en el contenedor de inyección de dependencia.

@Component: Esto indica una clase Java como un bean. Es un estereotipo general para cualquier componente administrado por Spring. El proceso de escaneo de componentes de Spring puede recogerlo y llevarlo al contexto de la aplicación.

@Servicio: esta anotación es un área de anotación de componentes. No hay un comportamiento nuevo sobre la anotación @Component. Se puede usar @Service en lugar de @Component en clases de capa de servicio porque especifica la intención de manera adecuada.

@Repository: esta anotación es un área de la anotación @Component. Viene con las mismas funciones y usos. Sin embargo, ofrece algunas ventajas extra, precisamente para las DAO. Obtiene los DAO en el contenedor DI y califica las excepciones no verificadas para traducirlas a Spring DataAccessException.

P.26 Describa el soporte Spring DAO

El soporte de objetos de acceso a datos en Spring facilita el acceso a tecnologías como Hibernate, JDBC o JDO de una manera adecuada y estable. Permite seleccionar cualquiera de las tecnologías sin problemas. También permite codificar sin estresarse por detectar excepciones relacionadas con cada una de estas tecnologías.

P.27 ¿Qué clases están disponibles en Spring JDBC API?

Las clases que están presentes en la API de JDBC son:

  1. Plantilla Jdbc
  2. PlantillaJdbcSimple
  3. NamedParameterJdbcTemplate
  4. SimpleJdbcInsertar
  5. SimpleJdbcCall

P.28 ¿Cuáles son los métodos por los cuales uno puede acceder a Hibernate usando Spring?

Hay dos métodos por los cuales uno puede acceder a Hibernate usando Spring:

  1. El método de inversión de control con una devolución de llamada y una plantilla de hibernación.
  2. Aplicación de un nodo AOP Interceptor y ampliación del soporte HibernateDAOS.

P.29 Nombre los tipos de gestión de transacciones compatibles con Spring

Spring admite dos tipos de gestión de transacciones. Ellos son:

  1. Gestión programática de transacciones: aquí, la transacción se controla con la ayuda de la programación. Proporciona una gran cantidad de flexibilidad. Sin embargo, es difícil de mantener.
  2. Gestión declarativa de transacciones: aquí, la gestión de transacciones se mantiene separada del código comercial. Uno puede usar solo anotaciones o configuraciones basadas en XML para controlar las transacciones.

P.30 Describa AOP

AOP se conoce como programación organizada por aspectos. Es un sistema de programación que permite a los ingenieros de software modularizar preocupaciones transversales o conductas que superan las divisiones estándar de obligaciones. Ejemplos de preocupaciones transversales son el registro y la gestión de transacciones. El núcleo de AOP es un aspecto . Ejemplifica prácticas que pueden influir en varias clases en módulos reutilizables.

P.31 ¿Qué quiere decir con Aspecto?

El aspecto es la modularización de la preocupación, que atraviesa múltiples objetos. Un buen ejemplo de preocupaciones transversales en J2EE serían las aplicaciones de gestión de transacciones. Los aspectos se realizan utilizando clases regulares, o clases regulares explicadas con la anotación @Aspect en Spring Framework.

P.32 ¿Qué es un JoinPoint?

Un punto en el que la ejecución de un programa se llama JoinPoint, por ejemplo, el manejo de una excepción o la ejecución de un método. En Spring AOP, un JoinPoint representa consistentemente la ejecución de un método.

P.33 ¿Qué quiere decir con el marco Spring MVC?

El marco Spring web MVC ofrece una arquitectura modelo-vista-controlador y componentes listos para usar. Puede usar estos componentes para crear aplicaciones web flexibles y poco acopladas. El patrón MVC admite el aislamiento de los diferentes aspectos de la aplicación, como la lógica comercial, la lógica de entrada y la lógica de la interfaz de usuario, al tiempo que brinda un acoplamiento flexible entre cada uno de estos componentes.

P.34 Describa DispatcherServlet

Este es el núcleo del marco Spring Web MVC. Gestiona todas las solicitudes y respuestas HTTP. El DispatcherServlet obtiene del archivo de configuración la entrada del mapeo del controlador y pasa la solicitud al controlador. El controlador luego da un objeto de Modelo y Vista. El DispatcherServlet marca la entrada de la resolución de vista en el archivo de configuración y llama al componente de vista definido.

P.35 Explicar WebApplicationContext

El WebApplicationContext es un aumento del ApplicationContext simple. Tiene algunas características más que son necesarias para las aplicaciones web. Es diferente de un ApplicationContext normal porque tiene la capacidad de resolver temas y decidir con qué servlet está vinculado.

Aprenda cursos de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

Hemos cubierto la mayoría de las principales preguntas de la entrevista de Spring que hace el entrevistador. Si está interesado en obtener más información y necesita la tutoría de expertos de la industria, consulte el Desarrollo de software de pila completa del programa Executive PG de upGrad & IIIT Banglore.

¿Qué es Java Spring?

Java Spring desarrollado por Sun Microsystems, es una plataforma que soporta el desarrollo de aplicaciones. Spring es una colección de servicios y API basados ​​en Java que ayudan a escribir aplicaciones escalables. Spring es un marco de desarrollo de aplicaciones de código abierto. Se puede usar con cualquier aplicación basada en Java, por lo que es de código abierto. Spring proporciona clases de utilidad, manejo de excepciones, AOP e interfaces para admitir aplicaciones empresariales. Java Spring es una plataforma que admite aplicaciones del lado del servidor basadas en Java y simplifica el proceso de desarrollo general. Es una plataforma altamente flexible que se puede utilizar con cualquier servidor basado en Java. Proporciona clases de utilidad y servicios de manejo de excepciones. Tiene un sistema de soporte transaccional y proporciona un enlace fácil con bases de datos.

¿Qué es SpringMVC?

Spring MVC (Model View Controller) es un marco de aplicación web de código abierto que está escrito en Java y ha sido desarrollado durante los últimos cuatro años por un equipo de SpringSource. Está desarrollado sobre la API Servlet y está disponible para aplicaciones web Java EE 5 y para aplicaciones Google Web Toolkit. También se integra con Spring Data y Spring AOP, por lo que puede usarlo con Hibernate, JPA y programación orientada a aspectos, entre otros marcos. Spring MVC es altamente configurable y admite los principios de inversión de control (IoC) de Spring. Admite la creación de aplicaciones web con estado, para que pueda mantener la información del estado de la aplicación entre solicitudes.

¿Qué es Spring Hibernate?

Hibernate es una biblioteca de mapeo relacional de objetos (ORM) para Java. Hibernate está diseñado para manejar la persistencia de los objetos de la clase Java. Es un marco ORM potente, liviano y extremadamente portátil. Hibernate está disponible bajo la Licencia pública general reducida de GNU (LGPL). Spring Data es un proyecto dentro de Spring Framework que proporciona un conjunto de componentes para acceder y administrar datos de una manera más orientada a objetos utilizando el paradigma familiar Spring Inversion of Control (IoC). Hibernate es solo un marco ORM. Spring Data, por otro lado, es un esfuerzo por crear una capa de abstracción sobre varios mecanismos de almacenamiento como Base de datos relacional, NoSQL, archivos planos, etc.