Notas Spring
Notas Spring
El acto de conectar beans juntos se basa en un patrón conocido como inyección de dependencia
(DI). En lugar de que los componentes creen y mantengan el ciclo de vida de otros beans de los
que dependen, una aplicación con inyección de dependencia se basa en una entidad separada (el
contenedor) para crear y mantener todos los componentes e inyectarlos en los beans que los
necesitan. Esto se hace típicamente a través de argumentos de constructor o métodos de acceso a
propiedades.
La anotación @Configuration le indica a Spring que esta es una clase de configuración que
proporcionará beans al contexto de la aplicación Spring.
Los métodos de configuración están anotados con @Bean, lo que indica que los objetos que
devuelven deben agregarse como beans en el contexto de la aplicación (donde, por defecto, sus
respectivos ID de bean serán los mismos que los nombres de los métodos que los definen).
Spring Boot es una extensión de Spring Framework que ofrece varias mejoras de productividad. La
más conocida de estas mejoras es la configuración automática, donde Spring Boot puede hacer
conjeturas razonables sobre qué componentes deben configurarse y conectarse juntos, en función
de las entradas en el classpath, las variables de entorno y otros factores.
Git:
Para crear un repositorio local y luego subirlo a un remoto git, seguir los pasos que se enumeran a
continuación:
mvnw y mvnw.cmd: Estos son scripts de envoltorio de Maven. Puede usar estos scripts para
construir su proyecto, incluso si no tiene Maven instalado en su máquina.
pom.xml: Esta es la especificación de compilación de Maven
TacoCloudApplication.java: Esta es la clase principal de Spring Boot que arranca el proyecto.
application.properties: Este archivo inicialmente está vacío, pero ofrece un lugar donde puede
especificar las propiedades de configuración.
static: Esta carpeta es donde puede colocar cualquier contenido estático (imágenes, hojas de
estilo, JavaScript, etc.) que desee mostrar al navegador. Inicialmente está vacío.
templates: Esta carpeta es donde colocará los archivos de plantilla que se utilizarán para
representar el contenido en el navegador. Inicialmente está vacío, pero pronto agregará una
plantilla de Thymeleaf.
TacoCloudApplicationTests.java: esta es una clase de prueba simple que garantiza que el
contexto de la aplicación Spring se carga correctamente.
En la última parte del archivo, sección build, se especifican los plugins que proporcionan un
objetivo de Maven que le permite ejecutar la aplicación usando Maven, garantiza que todas las
bibliotecas de dependencia se incluyan en el archivo JAR ejecutable y que estén disponibles en el
classpath en tiempo de ejecución y produce un archivo de manifiesto en el archivo JAR que denota
la clase de arranque (TacoCloudApplication) como la clase principal para el JAR ejecutable.
Controlador:
Spring viene con un poderoso framework web conocido como Spring MVC. En el centro de Spring
MVC se encuentra el concepto de un controlador, una clase que maneja solicitudes y responde con
información de algún tipo. En el caso de una aplicación orientada al navegador, un controlador
responde completando opcionalmente los datos del modelo y pasando la solicitud a una vista para
producir HTML que se devuelve al navegador.
@Controller
Su propósito principal es identificar una clase como un componente para el escaneo de
componentes. El escaneo de componentes de Spring lo descubre automáticamente y crea una
instancia de la clase controller como un bean en el contexto de la aplicación Spring.
@GetMapping
Indica que, si se recibe una solicitud HTTP GET para la ruta establecida, entonces este método
debe manejar esa solicitud. Lo hace sin hacer nada más que devolver un valor de string. Este valor
es interpretado como el nombre lógico de la vista.
Definiendo la vista:
El nombre de la plantilla se deriva del nombre de la vista lógica con el prefijo /templates/ y el
postfijo .html. La ruta resultante para la plantilla es /templates/home.html. Por lo tanto, deberá
colocar la plantilla en su proyecto en /src/main/resources/templates/home.html.
Bean:
Un bean en Spring Framework se refiere a un objeto Java que es administrado por el contenedor
de Spring. Los beans son la base del sistema de inyección de dependencias (Dependency Injection)
y control de inversion (Inversion of Control, IoC) en Spring. Estos objetos pueden ser instanciados,
ensamblados y gestionados por el framework para simplificar la configuración y las interacciones
entre componentes dentro de una aplicación Java. En resumen, un bean es una instancia concreta
de una clase que puede ser utilizada y compartida a través del contexto de aplicación Spring.
Añadir funcionalidad de ordenar tacos en la app web.
@RequestMapping
@SessionAttributes
Anotación Descripción
@RequestMappin
g Manejo de solicitudes de propósito general
@GetMapping Maneja solicitudes HTTP GET
@PostMapping Maneja solicitudes HTTP POST
@PutMapping Maneja solicitudes HTTP PUT
@DeleteMapping Maneja solicitudes HTTP DELETE
@PatchMapping Maneja solicitudes HTTP PATCH
@ModelAttribute
Validaciones
Se debe declarar la dependencia “validation” en el proyecto spring.
Usamos las siguientes anotaciones en las clases POJO para validación de campos:
Finalmente, se debe mostrar el mensaje de error en la vista, se puede hacer con un <span>
renderizándolo cuando se encuentre un error en la validación: