Una introducción al marco Spring
Spring es un marco de Java que utiliza un contenedor para crear y administrar los diferentes componentes de una aplicación. El contenedor (a menudo denominado contexto de aplicación Spring) conecta los diferentes componentes de una aplicación mediante el patrón de diseño de inyección de dependencia (DI). DI le permite usar un objeto en una clase dependiente, sin crear una nueva instancia dentro de la clase dependiente.
Entonces, en lugar de permitir que cada componente cree nuevas instancias de las que dependen, el contenedor de Spring crea y mantiene una instancia de cada uno de los componentes que aloja. Este contenedor luego inyecta una instancia de un componente en todos los demás componentes que lo necesitan.
Explorando las características principales de Spring
Spring Framework tiene alrededor de 20 módulos bien organizados que juegan un papel integral en su capacidad para crear y administrar aplicaciones. Según las características principales de estos módulos, puede agruparlos en cinco categorías:
- Contenedor central
- Acceso/Integración de datos
- Web
- Instrumentación y Programación Orientada a Aspectos
- Prueba
Contenedor de primavera
Spring usa un contenedor para crear y administrar diferentes componentes (a los que llama beans) de una aplicación. Se puede acceder al contenedor a través de la interfaz ApplicationContext de Spring, que le permite instanciar, configurar y ensamblar objetos (o beans). El contenedor de Spring puede realizar su función gracias a la ayuda de los metadatos de configuración.
Estos metadatos de configuración pueden tener varias formas diferentes, pero su forma típica es XML. Además de beans, el contenedor de Spring también consta de un núcleo, un contexto y un módulo de expresión.
Acceso/integración de datos Spring
El aspecto de acceso/integración de datos del marco Spring consta de varios submódulos: JDBC, ORM, OXM, JMS y transacción. Estos módulos funcionan juntos para administrar los datos que utiliza su aplicación.
Telaraña de primavera
La función web de la aplicación Spring proporciona una integración orientada a la web para su aplicación. Además de la integración orientada a la web, Spring proporciona un módulo de servlet web. El módulo de servlet web es responsable de la implementación del controlador de vista de modelo (MVC) de Spring.
Programación orientada a aspectos de primavera (AOP)
El marco AOP de Spring es otro de sus componentes clave. Aunque el marco AOP no es crucial para la función de contenedor de Spring, complementa el contenedor al ser una solución de middleware capaz. Una de las características clave del marco AOP es que proporciona servicios empresariales declarativos para su aplicación, a saber, la gestión de transacciones de declaración.
La gestión de transacciones declarativas es un enfoque deseable para el desarrollo de software porque tiene un impacto mínimo en el código de la aplicación.
Prueba de primavera
Spring otorga una importancia significativa a las pruebas de aplicaciones. Su módulo de prueba admite pruebas de integración y pruebas unitarias mediante JUnit o TestNG.
Creación de una aplicación de primavera
Hay varias formas de crear el modelo para una nueva aplicación de Spring. Los diversos enfoques incluyen:
- Desde la aplicación web (o Spring Initializr) en el sitio web oficial de Spring.
- Creación manual de una estructura de directorios del proyecto y especificaciones de compilación.
- Con Spring Tool Suite.
- Desde la línea de comandos con la interfaz de línea de comandos de Spring Boot.
- Con el IDE de Eclipse.
- Con el IDE de IntelliJ IDEA.
El enfoque más popular es Spring Initializr:
Como puede ver en la imagen de arriba, tendrá que tomar varias decisiones. El primero es el tipo de proyecto que desea inicializar. Spring ofrece tres opciones: Gradle para Groovy, Gradle para Kotlin o Maven. Esta aplicación de muestra utilizará un proyecto Maven.
Las otras opciones que debes seleccionar son el idioma (Java), la versión de Spring Boot que quieres usar y los metadatos del proyecto. Spring ya tiene algunos datos ficticios en sus cinco campos que lo ayudarán a crear una aplicación de muestra. Sin embargo, deberá actualizar estos campos con datos específicos del proyecto, ya que estos metadatos describirán su aplicación Spring, incluidos los beans Spring y sus métodos.
A continuación, deberá seleccionar el paquete en el que desea sus archivos (jar o war). Luego puede seleccionar la versión de Java que tiene en su dispositivo. La decisión final que deberá tomar es el tipo de dependencias que desea para su aplicación.
Spring proporciona varias dependencias que puede usar para agregar propiedades a su aplicación. Para agregar una nueva dependencia a su aplicación, simplemente haga clic en el botón Agregar dependencias a la derecha de Spring Initializr. Esta acción generará la siguiente superposición en su pantalla:
Para esta aplicación de muestra, la única dependencia que necesitará es Spring Web. Esta dependencia le permite crear aplicaciones web utilizando la arquitectura MVC. Una vez que haya seleccionado todas las dependencias que desea usar en su aplicación, haga clic en generar. Esto descargará el modelo del proyecto por usted.
Ahora tiene un proyecto Spring Boot (que es una de las bibliotecas de Spring). El paso final es importar el proyecto a su IDE preferido. Su proyecto Spring tendrá la siguiente estructura de proyecto:
Esta es una estructura de proyecto normal de Maven, y hay varios archivos importantes con los que debe familiarizarse.
- Pom.xml: contiene los datos de configuración de la aplicación Spring.
- OnlineShopaholicsApplication.java: esta es la clase principal de Spring Boot, que ejecuta la aplicación.
- OnlineShopaholicsApplicationTest.java: esta es una clase de prueba JUnit que garantiza que el contexto de la aplicación Spring (o contenedor) se cargue correctamente.
Ejecutar una aplicación Spring
La clase bootstrap de Spring, que en este caso es la clase OnlineShopaholicsApplication, tiene el siguiente código inicial:
package com.onlineshopaholics;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class OnlineShopaholicsApplication {
public static void main(String[] args) {
SpringApplication.run(OnlineShopaholicsApplication.class, args);
}
}
Uno de los aspectos más importantes del código anterior es la anotación @SpringBootApplication , que es una anotación compuesta que le permite a su aplicación acceder a las funciones de otras tres anotaciones:
- @EnableAutoconfiguration: esta anotación habilita la configuración automática de Spring Boot. Esto significa que le dice a Spring Boot que configure cualquier componente que crea que su aplicación necesitará para funcionar.
- @ComponentScan: esta anotación le permite habilitar el escaneo de componentes. Esta característica es importante, ya que permite que Spring descubra y registre automáticamente otros componentes anotados para que los use el contexto (o contenedor) de la aplicación Spring.
- @SpringBootConfiguration: esta es una forma especializada de la anotación @Configureation, que le permite registrar beans (u objetos) en el contexto de la aplicación Spring.
El otro aspecto importante del código anterior es el método main() , ejecuta su aplicación. Cuando la aplicación se ejecuta ahora, simplemente inicia el servidor. Entonces, si desea agregar más funcionalidades a la aplicación, deberá actualizar el código:
package com.onlineshopaholics;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class OnlineShopaholicsApplication {
public static void main(String[] args) {
SpringApplication.run(OnlineShopaholicsApplication.class, args);
}
@GetMapping("/customer")
public String Welcome(@RequestParam(value = "name", defaultValue = "Customer") String name) {
return String.format("Welcome %s!", name);
}
}
La aplicación Spring Boot ahora tiene tres nuevas anotaciones:
- @RestController: esta anotación marca la clase como un controlador, por lo que todos los métodos de la clase anterior (aparte del main()) devolverán un objeto de dominio en lugar de una vista.
- @GetMapping: esta anotación asigna solicitudes HTTP GET a métodos de encabezado específicos. Por lo tanto, cada vez que crea una solicitud de «/cliente» en el navegador, el método Welcome() manejará la solicitud devolviendo un valor de cadena.
- @RequestParam: esta anotación indica que un parámetro de método debe vincularse a un parámetro de solicitud web.
Con el código actualizado, su Spring OnlineShopaholicsApplication ahora tiene una página de cliente que puede ver en su navegador. La ejecución de la aplicación iniciará el servidor y producirá una salida en la consola.
Hay mucha información importante en la salida. Le dice que el servidor se está ejecutando, le dice cuánto tiempo tomó el proceso de inicialización y le dice en qué puerto se está ejecutando la aplicación (8080, por defecto). Por lo tanto, si navega a http://localhost:8080/customer , verá el siguiente resultado en su navegador:
Ahora puede diseñar la vista de su aplicación
Otro archivo importante en la estructura del proyecto que puede notar es la carpeta de plantillas . Idealmente, la clase OnlineShopaholicsApplication debería servir como controlador, que maneja solicitudes para diferentes vistas. Por lo tanto, en una aplicación completa, la clase de controlador no debe contener el texto que se mostrará en la vista de su solicitud.
En su lugar, deberá crear archivos de plantilla usando HTML y colocarlos dentro de la carpeta de plantillas de su aplicación Spring.
Deja una respuesta