Acabo de anunciar el nuevo curso Learn Spring , centrado en los fundamentos de Spring 5 y Spring Boot 2:
>> VER EL CURSO1. Información general
El tutorial ilustra cómo iniciar una aplicación web con Spring.
Analizaremos la solución Spring Boot para iniciar la aplicación y también veremos un enfoque que no sea Spring Boot.
Usaremos principalmente la configuración de Java, pero también veremos su configuración XML equivalente.
2. Bootstrapping con Spring Boot
2.1. Dependencia de Maven
Primero, necesitaremos la dependencia spring-boot-starter-web:
org.springframework.boot spring-boot-starter-web 2.1.1.RELEASE
Este entrante incluye:
- spring-web y el módulo spring-webmvc que necesitamos para nuestra aplicación web Spring
- un iniciador Tomcat para que podamos ejecutar nuestra aplicación web directamente sin instalar explícitamente ningún servidor
2.2. Creación de una aplicación Spring Boot
La forma más sencilla de comenzar a usar Spring Boot es crear una clase principal y anotarla con @SpringBootApplication :
@SpringBootApplication public class SpringBootRestApplication { public static void main(String[] args) { SpringApplication.run(SpringBootRestApplication.class, args); } }
Esta única anotación es equivalente a usar @Configuration , @EnableAutoConfiguration y @ComponentScan.
De forma predeterminada, escaneará todos los componentes del mismo paquete o debajo.
A continuación, para la configuración basada en Java de Spring beans, necesitamos crear una clase de configuración y anotarla con la anotación @Configuration :
@Configuration public class WebConfig { }
Esta anotación es el principal artefacto utilizado por la configuración Spring basada en Java; él mismo está meta-anotado con @Component , lo que hace que las clases anotadas sean beans estándar y, como tal, también sean candidatas para el escaneo de componentes.
El propósito principal de las clases @Configuration es ser fuentes de definiciones de beans para Spring IoC Container. Para obtener una descripción más detallada, consulte los documentos oficiales.
También echemos un vistazo a una solución que utiliza la biblioteca principal spring-webmvc .
3. Bootstrapping con spring-webmvc
3.1. Dependencias de Maven
Primero, necesitamos la dependencia spring-webmvc:
org.springframework spring-webmvc 5.0.0.RELEASE
3.2. La configuración web basada en Java
A continuación, agregaremos la clase de configuración que tiene la anotación @Configuration :
@Configuration @EnableWebMvc @ComponentScan(basePackages = "com.baeldung.controller") public class WebConfig { }
Aquí, a diferencia de la solución Spring Boot, tendremos que definir explícitamente @EnableWebMvc para configurar configuraciones Spring MVC predeterminadas y @ComponentScan para especificar paquetes para buscar componentes.
La anotación @EnableWebMvc proporciona la configuración Spring Web MVC, como configurar el servlet del despachador, habilitar las anotaciones @Controller y @RequestMapping y configurar otros valores predeterminados.
@ComponentScan configura la directiva de análisis de componentes, especificando los paquetes a analizar.
3.3. La clase inicializadora
A continuación, necesitamos agregar una clase que implemente la interfaz WebApplicationInitializer :
public class AppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext container) throws ServletException { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.scan("com.baeldung"); container.addListener(new ContextLoaderListener(context)); ServletRegistration.Dynamic dispatcher = container.addServlet("mvc", new DispatcherServlet(context)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/"); } }
Aquí, estamos creando un contexto Spring usando la clase AnnotationConfigWebApplicationContext , lo que significa que estamos usando solo una configuración basada en anotaciones. Luego, especificamos los paquetes para buscar componentes y clases de configuración.
Finalmente, estamos definiendo el punto de entrada para la aplicación web: DispatcherServlet.
Esta clase puede reemplazar completamente el archivo web.xml de versiones <3.0 Servlet.
4. Configuración XML
También echemos un vistazo rápido a la configuración web XML equivalente:
Podemos reemplazar este archivo XML con la clase WebConfig anterior.
Para iniciar la aplicación, podemos usar una clase Initializer que carga la configuración XML o un archivo web.xml. Para obtener más detalles sobre estos dos enfoques, consulte nuestro artículo anterior.
5. Conclusión
En este artículo, analizamos dos soluciones populares para arrancar una aplicación web Spring, una que usa el iniciador web Spring Boot y otra que usa la biblioteca principal spring-webmvc.
En el próximo artículo sobre REST con Spring, cubro la configuración de MVC en el proyecto, la configuración de los códigos de estado HTTP, la clasificación de carga útil y la negociación de contenido.
Como siempre, el código presentado en este artículo está disponible en Github. Este es un proyecto basado en Maven, por lo que debería ser fácil de importar y ejecutar como está.
DESCANSO inferior