Preguntas y respuestas de la entrevista de primavera

Recientemente he publicado muchos tutoriales de Spring . Esta publicación te ayudará a responder las preguntas de la entrevista de Spring y explicará los conceptos básicos en detalle.

Spring Framework es uno de los frameworks Java EE más populares para aplicaciones web. La inyección de dependencias y la programación orientada a aspectos son la base de Spring Framework. Si eres bueno en Spring Framework, las posibilidades de que te seleccionen en las entrevistas de Java son realmente altas.

Consejo profesional : Core Java es la base de cualquier marco basado en Java, por lo que si se está preparando para entrevistas, consulte los artículos Preguntas de la entrevista de Core Java y Preguntas de la entrevista de Java .

Preguntas y respuestas de la entrevista de primavera

Aquí proporciono casi 50 preguntas de entrevistas de primavera y sus respuestas. Está actualizado hasta Spring 5, por lo que cubre todas las características más recientes, como Spring WebFlux para programación reactiva .

1. ¿Qué es Spring Framework?

Spring es uno de los frameworks Java EE más utilizados. Los conceptos básicos del framework Spring son “Inyección de dependencias” y “Programación orientada a aspectos”.

Spring Framework se puede utilizar en aplicaciones Java normales también para lograr un acoplamiento flexible entre diferentes componentes mediante la implementación de la inyección de dependencias. Podemos realizar tareas transversales como el registro y la autenticación utilizando el soporte de Spring para la programación orientada a aspectos.

Me gusta Spring porque ofrece muchas funciones y diferentes módulos para tareas específicas, como Spring MVC y Spring JDBC. Dado que es un marco de código abierto con muchos recursos en línea y miembros activos de la comunidad, trabajar con el marco Spring es fácil y divertido al mismo tiempo.

Lectura recomendada : Spring Framework

2. ¿Cuáles son algunas de las características importantes de Spring Framework?

Spring Framework está construido sobre dos conceptos de diseño: inyección de dependencia y programación orientada a aspectos.

Algunas de las características del framework Spring son:

  • Ligero y con muy poca sobrecarga al utilizar un marco para nuestro desarrollo.
  • Inyección de Dependencia o Inversión de Control para escribir componentes que sean independientes entre sí, el contenedor Spring se encarga de cablearlos entre sí para lograr nuestro trabajo.
  • El contenedor Spring IoC administra el ciclo de vida de Spring Bean y las configuraciones específicas del proyecto, como la búsqueda JNDI.
  • El marco Spring MVC se puede utilizar para crear aplicaciones web, así como servicios web RESTful capaces de devolver respuestas XML y JSON.
  • Soporte para gestión de transacciones, operaciones JDBC, carga de archivos, manejo de excepciones, etc. con muy pocas configuraciones, ya sea mediante el uso de anotaciones o mediante el archivo de configuración del bean Spring.

3. ¿Cuál es la ventaja de utilizar Spring Framework?

Algunas de las ventajas de utilizar Spring Framework son:

  • Reducción de dependencias directas entre los diferentes componentes de la aplicación. El contenedor IoC de Spring es responsable de inicializar los recursos o beans e inyectarlos como dependencias.
  • Escribir casos de prueba unitaria es fácil en el marco de Spring porque nuestra lógica empresarial no tiene dependencias directas con las clases de implementación de recursos reales. Podemos escribir fácilmente una configuración de prueba e inyectar nuestros beans simulados para fines de prueba.
  • Reduce la cantidad de código repetitivo, como inicializar objetos y abrir o cerrar recursos. Me gusta mucho la clase JdbcTemplate porque nos ayuda a eliminar todo el código repetitivo que viene con la programación JDBC.
  • Spring Framework se divide en varios módulos que nos ayudan a mantener la ligereza de nuestra aplicación. Por ejemplo, si no necesitamos las funciones de gestión de transacciones de Spring, no necesitamos agregar esa dependencia a nuestro proyecto.
  • Spring Framework es compatible con la mayoría de las características de Java EE y mucho más. Siempre está al tanto de las nuevas tecnologías; por ejemplo, existe un proyecto Spring para Android que nos ayuda a escribir mejor código para aplicaciones nativas de Android. Esto hace que Spring Framework sea un paquete completo y no necesitamos ocuparnos de los diferentes frameworks para diferentes requisitos.

4. ¿Cuáles son las características importantes de Spring 5?

Spring 5 es una renovación importante de Spring 4. Algunas de las características importantes son:

  • Soporte para Java 8 y versiones superiores, por lo que podemos utilizar expresiones lambda.
  • Soporte para las especificaciones Java EE7 y Servlet 4.0.
  • Las operaciones de archivos ahora se realizan a través de transmisiones NIO 2, una gran mejora si su aplicación maneja mucho archivos.
  • Introducción de spring-jcl para agilizar el registro; antes era un desastre debido a que no había un único punto para fines de registro.
  • Soporte para Kotlin, Lombok, Reactor 3.1 Flux y Mono , así como RxJava.
  • Spring WebFlux que lleva la programación reactiva a Spring.
  • Soporte para JUnit 5
  • Soporte para proporcionar información de componentes de resorte a través del archivo de índice “META-INF/spring.components” en lugar de escanear la ruta de clase.

Consulte las características de Spring 5 para obtener una descripción detallada de esta versión.

5. ¿Qué es Spring WebFlux?

Spring WebFlux es el nuevo módulo introducido en Spring 5. Spring WebFlux es el primer paso hacia el modelo de programación reactiva en el marco de Spring.

Spring WebFlux es la alternativa al módulo Spring MVC. Spring WebFlux se utiliza para crear una aplicación totalmente asincrónica y sin bloqueos basada en el modelo de ejecución de bucle de eventos.

Puede leer más sobre esto en el Tutorial de Spring WebFlux .

6. ¿Qué entiendes por Inyección de Dependencia?

El patrón de diseño de inyección de dependencias nos permite eliminar las dependencias codificadas y hacer que nuestra aplicación sea flexible, ampliable y mantenible. Podemos implementar el patrón de inyección de dependencias para trasladar la resolución de dependencias del tiempo de compilación al tiempo de ejecución.

Algunos de los beneficios de usar la inyección de dependencia son la separación de preocupaciones, la reducción de código repetitivo, los componentes configurables y la facilidad de pruebas unitarias.

Lea más en Tutorial de inyección de dependencias . También podemos usar Google Guide for Dependency Injection para automatizar el proceso de inyección de dependencias. Pero en la mayoría de los casos, buscamos más que solo la inyección de dependencias y ahí es donde Spring ocupa el primer lugar.

7. ¿Cómo implementamos DI en Spring Framework?

Podemos usar la configuración basada en XML de Spring y la configuración basada en anotaciones para implementar DI en aplicaciones Spring. Para una mejor comprensión, lea el ejemplo de inyección de dependencia de Spring , donde puede aprender ambas formas con el caso de prueba JUnit. La publicación también contiene un archivo zip de proyecto de muestra, que puede descargar y probar para obtener más información.

8. ¿Cuáles son los beneficios de utilizar Spring Tool Suite?

Podemos instalar complementos en Eclipse para obtener todas las características de Spring Tool Suite. Sin embargo, STS viene con Eclipse con otros elementos importantes, como compatibilidad con Maven, plantillas para crear diferentes tipos de proyectos Spring y un servidor tc para un mejor rendimiento con las aplicaciones Spring.

Me gusta STS porque resalta los componentes de Spring y, si estás usando puntos de corte y consejos de AOP, muestra claramente qué métodos estarán incluidos en el punto de corte específico. Por eso, en lugar de instalar todo por nuestra cuenta, prefiero usar STS al desarrollar aplicaciones basadas en Spring.

9. Nombra algunos de los módulos Spring importantes.

Algunos de los módulos importantes de Spring Framework son:

  • Contexto de primavera: para inyección de dependencia.
  • Spring AOP – para programación orientada a aspectos.
  • Spring DAO: para operaciones de bases de datos que utilizan el patrón DAO
  • Spring JDBC: para compatibilidad con JDBC y DataSource.
  • Spring ORM: para compatibilidad con herramientas ORM como Hibernate
  • Módulo Web Spring: para crear aplicaciones web.
  • Spring MVC – Implementación Modelo-Vista-Controlador para crear aplicaciones web, servicios web, etc.

10. ¿Qué entiendes por Programación Orientada a Aspectos?

Las aplicaciones empresariales tienen algunas preocupaciones transversales comunes que son aplicables a diferentes tipos de objetos y módulos de aplicación, como el registro, la gestión de transacciones, la validación de datos, la autenticación, etc. La modularidad de la aplicación se logra mediante clases en la programación orientada a objetos. En AOP, la modularidad de la aplicación se logra mediante aspectos y se configuran para abarcar diferentes métodos de clase.

AOP elimina la dependencia directa de las tareas transversales de las clases, lo que no es posible en la programación orientada a objetos normal. Por ejemplo, podemos tener una clase separada para el registro, pero las otras clases tendrán que llamar a estos métodos. Pero en AOP configuramos los aspectos y la ejecución del método se realiza automáticamente. Lea más sobre la compatibilidad con Spring AOP en Ejemplo de Spring AOP .

11. ¿Qué son Aspecto, Consejo, Punto de Corte, Punto de Unión y Argumentos de Consejo en AOP?

Aspecto : Aspecto es una clase que implementa cuestiones transversales, como la gestión de transacciones. Los aspectos pueden ser una clase normal configurada y luego configurada en el archivo de configuración de Spring Bean o podemos usar el soporte de Spring AspectJ para declarar una clase como un aspecto mediante @Aspectuna anotación.

Consejo : el consejo es la acción que se toma para un punto de unión en particular. En términos de programación, son métodos que se ejecutan cuando se alcanza un punto de unión específico con un punto de corte coincidente en la aplicación. Puede pensar en los consejos como interceptores de Spring o filtros de servlets .

Pointcut : Pointcuts son expresiones regulares que se corresponden con los puntos de unión para determinar si es necesario ejecutar un consejo o no. Pointcut utiliza diferentes tipos de expresiones que se corresponden con los puntos de unión. Spring Framework utiliza el lenguaje de expresiones pointcut de AspectJ para determinar los puntos de unión donde se aplicarán los métodos de consejo.

JoinPoint : Un punto de unión es un punto específico en la aplicación, como la ejecución de un método, el manejo de excepciones, el cambio de valores de variables de objetos, etc. En Spring AOP, un punto de unión es siempre la ejecución de un método.

Argumentos de asesoramiento : podemos pasar argumentos en los métodos de asesoramiento. Podemos usar la expresión args() en el punto de corte para aplicarla a cualquier método que coincida con el patrón de argumento. Si usamos esto, entonces necesitamos usar el mismo nombre en el método de asesoramiento desde donde se determina el tipo de argumento.

Estos conceptos pueden parecer confusos al principio, pero si repasas Spring Aspect, Advice Example , podrás identificarte fácilmente con ellos.

12. ¿Cuál es la diferencia entre Spring AOP y AspectJ AOP?

AspectJ es la implementación estándar de la industria para la programación orientada a aspectos, mientras que Spring implementa AOP en algunos casos. Las principales diferencias entre Spring AOP y AspectJ son:

  • Spring AOP es más sencillo de usar que AspectJ porque no necesitamos preocuparnos por el proceso de tejido.
  • Spring AOP admite anotaciones de AspectJ, por lo que si está familiarizado con AspectJ, trabajar con Spring AOP será más fácil.
  • Spring AOP solo admite AOP basado en proxy, por lo que solo se puede aplicar a puntos de unión de ejecución de métodos. AspectJ admite todo tipo de puntos de corte.
  • Una de las deficiencias de Spring AOP es que solo se puede aplicar a los beans creados a través de Spring Context.

13. ¿Qué es Spring IoC Container?

La inversión de control (IoC) es el mecanismo para lograr un acoplamiento flexible entre las dependencias de los objetos. Para lograr un acoplamiento flexible y una vinculación dinámica de los objetos en tiempo de ejecución, los objetos definen sus dependencias, que son inyectadas por otros objetos del ensamblador. El contenedor IoC de Spring es el programa que inyecta dependencias en un objeto y lo prepara para nuestro uso.

Las clases contenedoras IoC de Spring Framework son parte de org.springframework.beanspaquetes org.springframework.contexty nos brindan diferentes formas de desacoplar las dependencias de los objetos.

Algunas de las implementaciones de ApplicationContext útiles que utilizamos son:

  • AnnotationConfigApplicationContext: para aplicaciones Java independientes que utilizan configuración basada en anotaciones.
  • ClassPathXmlApplicationContext: para aplicaciones Java independientes que utilizan configuración basada en XML.
  • FileSystemXmlApplicationContext: similar a ClassPathXmlApplicationContext excepto que el archivo de configuración XML se puede cargar desde cualquier lugar del sistema de archivos.
  • AnnotationConfigWebApplicationContext y XmlWebApplicationContext para aplicaciones web.

14. ¿Qué es un frijol de primavera?

Cualquier clase Java normal que se inicializa mediante el contenedor IoC de Spring se denomina Spring Bean. Usamos Spring ApplicationContextpara obtener la instancia de Spring Bean.

El contenedor Spring IoC administra el ciclo de vida de Spring Bean, los alcances del bean y la inyección de cualquier dependencia requerida en el bean.

15. ¿Cuál es la importancia del archivo de configuración del bean Spring?

Utilizamos el archivo de configuración de Spring Bean para definir todos los beans que serán inicializados por Spring Context. Cuando creamos la instancia de Spring ApplicationContext, lee el archivo XML del bean de Spring y los inicializa todos. Una vez que se inicializa el contexto, podemos usarlo para obtener diferentes instancias de bean.

Además de la configuración de Spring Bean, este archivo también contiene interceptores Spring MVC, solucionadores de vistas y otros elementos para admitir configuraciones basadas en anotaciones.

16. ¿Cuáles son las diferentes formas de configurar una clase como Spring Bean?

Hay tres formas diferentes de configurar Spring Bean.

Configuración XML : esta es la configuración más popular y podemos usar el elemento bean en el archivo de contexto para configurar un bean Spring. Por ejemplo:

bean name="myBean"/bean

Configuración basada en Java : si solo utiliza anotaciones, puede configurar un bean Spring mediante @Beananotaciones. Esta anotación se utiliza con @Configurationclases para configurar un bean Spring. La configuración de ejemplo es la siguiente:

@Configuration@ComponentScan(value="com.journaldev.spring.main")public class MyConfiguration {@Beanpublic MyService getService(){return new MyService();}}

Para obtener este bean del contexto de Spring, tenemos que usar el siguiente fragmento de código:

AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MyConfiguration.class);MyService service = ctx.getBean(MyService.class);

Configuración basada en anotaciones : también podemos usar las anotaciones @Component , @Service , @Repository y @Controller con clases para configurarlas como bean de Spring. Para esto, tendríamos que proporcionar la ubicación del paquete base para escanear estas clases. Por ejemplo:

context:component-scan base-package="com.journaldev.spring" /

17. ¿Cuáles son los diferentes alcances de Spring Bean?

Hay cinco ámbitos definidos para Spring Beans.

  1. singleton : solo se creará una instancia del bean para cada contenedor. Este es el ámbito predeterminado para los beans de Spring. Al usar este ámbito, asegúrese de que el bean de Spring no tenga variables de instancia compartidas, de lo contrario, podría generar problemas de inconsistencia de datos porque no es seguro para subprocesos.
  2. prototipo: se creará una nueva instancia cada vez que se solicite el bean.
  3. Solicitud: es igual que el ámbito del prototipo, pero está pensado para usarse en aplicaciones web. Se creará una nueva instancia del bean para cada solicitud HTTP.
  4. sesión : el contenedor creará un nuevo bean para cada sesión HTTP.
  5. global-session : se utiliza para crear beans de sesión globales para aplicaciones de portlet.

Spring Framework es extensible y también podemos crear nuestros propios ámbitos. Pero la mayoría de las veces nos conformamos con los ámbitos que nos proporciona el framework. Para establecer los ámbitos de los beans de Spring, podemos usar el atributo “scope” en el elemento bean o la anotación @Scope para configuraciones basadas en anotaciones.

18. ¿Cuál es el ciclo de vida del frijol de primavera?

Los beans de Spring se inicializan mediante Spring Container y también se inyectan todas las dependencias. Cuando se destruye el contexto, también se destruyen todos los beans inicializados. Esto funciona bien en la mayoría de los casos, pero a veces queremos inicializar otros recursos o realizar alguna validación antes de que nuestros beans estén listos para su uso. El marco de Spring proporciona compatibilidad con métodos de postinicialización y predestrucción en beans de Spring.

Podemos hacer esto de dos maneras: implementando InitializingBeaninterfaces DisposableBeano usando los atributos init-method y destroy-method en las configuraciones de los beans de Spring. Para obtener más detalles, lea Métodos del ciclo de vida de los beans de Spring .

19. ¿Cómo obtener los objetos ServletContext y ServletConfig en un Spring Bean?

Hay dos formas de obtener objetos específicos del contenedor en el bean de primavera.

  • Implementación de interfaces Spring *Aware, para estas interfaces ServletContextAware y ServletConfigAware, para obtener un ejemplo completo de estas interfaces conscientes, lea Interfaces Spring Aware .
  • Uso de @Autowiredanotaciones con variables bean de tipo ServletContexty ServletConfig. Funcionarán únicamente en entornos específicos de contenedores de servlets.
@AutowiredServletContext servletContext;

20. ¿Qué es el cableado de Bean y la anotación @Autowired ?

El proceso de inyección de dependencias de Spring Bean durante la inicialización se denomina cableado de Spring Bean.

Por lo general, la mejor práctica es realizar el cableado explícito de todas las dependencias del bean, pero el marco Spring también admite el cableado automático. Podemos usar @Autowiredanotaciones con campos o métodos para el cableado automático byType . Para que esta anotación funcione, también debemos habilitar la configuración basada en anotaciones en el archivo de configuración del bean Spring. Esto se puede hacer mediante el elemento context:annotation-config .

Para obtener más detalles sobre @Autowiredla anotación, lea el Ejemplo de Spring Autowire .

21. ¿Cuáles son los diferentes tipos de cableado automático Spring Bean?

Hay cuatro tipos de cableado automático en el marco Spring.

  1. autowire por Nombre
  2. autowire por tipo
  3. autowire por constructor
  4. cableado automático mediante anotaciones de @Autowired y @Qualifier

Antes de Spring 3.1, también se admitía el cableado automático por detección automática , que era similar al cableado automático por constructor o por tipo. Para obtener más detalles sobre estas opciones, lea Spring Bean Autowiring .

22. ¿Spring Bean proporciona seguridad para subprocesos?

El alcance predeterminado de los beans Spring es singleton, por lo que solo habrá una instancia por contexto. Esto significa que todos los beans Spring que tengan una variable de nivel de clase que cualquier subproceso pueda actualizar generarán datos inconsistentes. Por lo tanto, en el modo predeterminado, los beans Spring no son seguros para subprocesos.

Sin embargo, podemos cambiar el alcance del bean de Spring a solicitud, prototipo o sesión para lograr seguridad de subprocesos a costa del rendimiento. Es una decisión de diseño y se basa en los requisitos del proyecto.

23. ¿Qué es un controlador en Spring MVC?

Al igual que el patrón de diseño MVC, el controlador es la clase que se encarga de todas las solicitudes de los clientes y las envía a los recursos configurados para gestionarlas. En Spring MVC, DispatcherServlet es la clase controladora principal que inicializa el contexto en función de las configuraciones de los beans de Spring.

Una clase de controlador es responsable de manejar distintos tipos de solicitudes de clientes en función de las asignaciones de solicitudes. Podemos crear una clase de controlador mediante la anotación @Controller . Por lo general, se utiliza con la anotación @RequestMapping para definir métodos de controlador para asignaciones de URI específicas.

24. ¿Cuál es la diferencia entre las anotaciones @Component , @Controller , @Repository y @Service en Spring?

@Component se utiliza para indicar que una clase es un componente. Estas clases se utilizan para la detección automática y se configuran como un bean cuando se utilizan configuraciones basadas en anotaciones.

@Controller es un tipo específico de componente, utilizado en aplicaciones MVC y principalmente con la anotación RequestMapping.

La anotación @Repository se utiliza para indicar que un componente se utiliza como repositorio y mecanismo para almacenar, recuperar o buscar datos. Podemos aplicar esta anotación con clases de implementación de patrones DAO.

@Service se utiliza para indicar que una clase es un servicio. Normalmente, las clases de fachada empresarial que proporcionan algunos servicios se anotan con este atributo.

Podemos utilizar cualquiera de las anotaciones anteriores para una clase para la detección automática, pero se proporcionan diferentes tipos para que pueda distinguir fácilmente el propósito de las clases anotadas.

25. ¿Qué es DispatcherServlet y ContextLoaderListener?

DispatcherServlet es el controlador frontal de la aplicación Spring MVC y carga el archivo de configuración del bean Spring e inicializa todos los beans que están configurados. Si las anotaciones están habilitadas, también escanea los paquetes y configura cualquier bean anotado con las anotaciones @Component , @Controller , @Repository o @Service .

ContextLoaderListener es el detector que inicia y cierra el WebApplicationContext raíz de Spring. Sus funciones importantes son vincular el ciclo de vida de ApplicationContext con el ciclo de vida de ServletContext y automatizar la creación de ApplicationContext. Podemos usarlo para definir beans compartidos que se puedan usar en diferentes contextos de Spring.

26. ¿Qué es ViewResolver en Spring?

Las implementaciones de ViewResolver se utilizan para resolver las páginas de vista por nombre. Lo configuramos en el archivo de configuración del bean Spring. Por ejemplo:

!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --beans:beanbeans:property name="prefix" value="/WEB-INF/views/" /beans:property name="suffix" value=".jsp" //beans:bean

InternalResourceViewResolver es una de las implementaciones de la interfaz ViewResolver y proporcionamos el directorio de páginas de vista y la ubicación del sufijo a través de las propiedades del bean. Por lo tanto, si un método de controlador devuelve “inicio”, el solucionador de vista utilizará la página de vista ubicada en /WEB-INF/views/home.jsp.

27. ¿Qué es un MultipartResolver y cuándo se utiliza?

La interfaz MultipartResolver se utiliza para cargar archivos: CommonsMultipartResolver y StandardServletMultipartResolver son dos implementaciones proporcionadas por Spring Framework para la carga de archivos. De forma predeterminada, no hay solucionadores multipart configurados, pero para usarlos para cargar archivos, todo lo que necesitamos es definir un bean llamado “multipartResolver” con el tipo MultipartResolver en las configuraciones de bean de Spring.

Una vez configurado, cualquier solicitud multiparte será resuelta por el MultipartResolver configurado y pasará un HttpServletRequest encapsulado. Luego se utiliza en la clase del controlador para obtener el archivo y procesarlo. Para ver un ejemplo completo, lea el Ejemplo de carga de archivos de Spring MVC .

28. ¿Cómo manejar excepciones en Spring MVC Framework?

Spring MVC Framework proporciona las siguientes formas de ayudarnos a lograr un manejo sólido de excepciones.

Basado en el controlador : podemos definir métodos de manejo de excepciones en nuestras clases de controlador. Todo lo que necesitamos es anotar estos métodos con la anotación @ExceptionHandler .

Manejador de excepciones global : el manejo de excepciones es una preocupación transversal y Spring proporciona la anotación @ControllerAdvice que podemos usar con cualquier clase para definir nuestro manejador de excepciones global.

Implementación de HandlerExceptionResolver : para excepciones genéricas, la mayoría de las veces servimos páginas estáticas. Spring Framework proporciona una interfaz HandlerExceptionResolver que podemos implementar para crear un controlador de excepciones global. La razón detrás de esta forma adicional de definir el controlador de excepciones global es que Spring Framework también proporciona clases de implementación predeterminadas que podemos definir en nuestro archivo de configuración de bean Spring para obtener los beneficios del manejo de excepciones de Spring Framework.

Para ver un ejemplo completo, lea Ejemplo de manejo de excepciones de Spring .

29. ¿Cómo crear ApplicationContext en un programa Java?

Existen las siguientes formas de crear un contexto de Spring en un programa Java independiente.

  1. AnnotationConfigApplicationContext : si usamos Spring en aplicaciones Java independientes y usamos anotaciones para la configuración, entonces podemos usar esto para inicializar el contenedor y obtener los objetos bean.
  2. ClassPathXmlApplicationContext : si tenemos un archivo XML de configuración de bean Spring en una aplicación independiente, entonces podemos usar esta clase para cargar el archivo y obtener el objeto contenedor.
  3. FileSystemXmlApplicationContext : es similar a ClassPathXmlApplicationContext excepto que el archivo de configuración XML se puede cargar desde cualquier lugar del sistema de archivos.

30. ¿Podemos tener múltiples archivos de configuración de Spring?

Para las aplicaciones Spring MVC, podemos definir varios archivos de configuración de contexto de Spring a través de contextConfigLocation. Esta cadena de ubicación puede constar de varias ubicaciones separadas por cualquier número de comas y espacios. Por ejemplo:

servletservlet-nameappServlet/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-classinit-param            param-namecontextConfigLocation/param-name    param-value/WEB-INF/spring/appServlet/servlet-context.xml,/WEB-INF/spring/appServlet/servlet-jdbc.xml/param-value/init-paramload-on-startup1/load-on-startup/servlet

También podemos definir múltiples configuraciones de resortes de nivel raíz y cargarlas a través de context-param. Por ejemplo:

context-paramparam-namecontextConfigLocation/param-nameparam-value/WEB-INF/spring/root-context.xml /WEB-INF/spring/root-security.xml/param-value/context-param

Otra opción es utilizar el elemento de importación en el archivo de configuración de contexto para importar otras configuraciones, por ejemplo:

beans:import resource="spring-jdbc.xml"/

31. ¿Qué es ContextLoaderListener?

ContextLoaderListener es la clase de escucha que se utiliza para cargar el contexto raíz y definir las configuraciones de los beans Spring que serán visibles para todos los demás contextos. Se configura en el archivo web.xml como:

context-paramparam-namecontextConfigLocation/param-nameparam-value/WEB-INF/spring/root-context.xml/param-value/context-paramlistenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listener

32. ¿Cuáles son las configuraciones mínimas necesarias para crear una aplicación Spring MVC?

Para crear una aplicación Spring MVC simple, necesitaríamos realizar las siguientes tareas.

  • Agregar spring-contexty spring-webmvcdependencias en el proyecto.
  • Configure DispatcherServleten el archivo web.xml para manejar solicitudes a través del contenedor de Spring.
  • Archivo de configuración de Spring Bean para definir beans. Si se usan anotaciones, se debe configurar aquí. Además, debemos configurar el solucionador de vistas para las páginas de vistas.
  • Clase controladora con asignaciones de solicitudes definidas para manejar las solicitudes del cliente.

Los pasos anteriores deberían ser suficientes para crear una aplicación Hello World Spring MVC sencilla.

33. ¿Cómo relacionarías Spring MVC Framework con la arquitectura MVC?

Como sugiere el nombre, Spring MVC está construido sobre la arquitectura Modelo-Vista-Controlador . DispatcherServletes el controlador frontal en la aplicación Spring MVC que se encarga de todas las solicitudes entrantes y las delega a diferentes métodos de manejo del controlador.

El modelo puede ser cualquier Java Bean en Spring Framework, al igual que cualquier otro framework MVC. Spring proporciona la vinculación automática de datos de formulario a Java Beans. Podemos configurar los modelos de Beans como atributos para utilizarlos en las páginas de vista.

Las páginas de vista pueden ser JSP, HTML estático, etc. y los solucionadores de vista son responsables de encontrar la página de vista correcta. Una vez que se identifica la página de vista, el control se devuelve al controlador DispatcherServlet. DispatcherServlet es responsable de representar la vista y devolver la respuesta final al cliente.

34. ¿Cómo lograr la localización en aplicaciones Spring MVC?

Spring ofrece un excelente soport

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio