0% encontró este documento útil (0 votos)
52 vistas6 páginas

Notas Spring

El documento introduce Spring y describe sus principales características como inyección de dependencias, contexto de aplicación Spring, beans y anotaciones como @Configuration, @Bean y @Component. Explica cómo inicializar un proyecto Spring en Eclipse y la estructura básica de un proyecto Spring. También resume los conceptos clave de Spring MVC como controladores, vistas, solicitudes HTTP y anotaciones como @RequestMapping, @GetMapping y @ModelAttribute. Por último, brinda una introducción a los conceptos de beans y validaciones en Spring.

Cargado por

Diego Alejandro
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
52 vistas6 páginas

Notas Spring

El documento introduce Spring y describe sus principales características como inyección de dependencias, contexto de aplicación Spring, beans y anotaciones como @Configuration, @Bean y @Component. Explica cómo inicializar un proyecto Spring en Eclipse y la estructura básica de un proyecto Spring. También resume los conceptos clave de Spring MVC como controladores, vistas, solicitudes HTTP y anotaciones como @RequestMapping, @GetMapping y @ModelAttribute. Por último, brinda una introducción a los conceptos de beans y validaciones en Spring.

Cargado por

Diego Alejandro
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Introducción Spring

En esencia, Spring ofrece un contenedor, a menudo denominado contexto de aplicación Spring,


que crea y administra los componentes de la aplicación. Estos componentes, o beans, se conectan
entre sí dentro del contexto de la aplicación Spring para hacer una aplicación completa, al igual
que los ladrillos, el mortero, la madera, los clavos, la plomería y el cableado se unen para hacer
una casa.

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.

Inicialización de proyecto Spring


En primera instancia en el IDE eclipse, se debe tener instalado el complemento Spring tools 4. Ir a
Help, eclipse Marketplace, buscar por Spring tools 4 y dar clic en instalar. Posteriormente esperar a
que termine la instalación y reiniciar el IDE Eclipse.

Git:
Para crear un repositorio local y luego subirlo a un remoto git, seguir los pasos que se enumeran a
continuación:

1. Crear el proyecto, en este caso con Spring starter Project.


2. Dentro de la carpeta del proyecto, dar clic derecho y seleccionar la opción “git bash here”
3. Ejecutar el comando: git init -> para crear el repositorio local.
4. Hacer commit de los archivos.
git status -> muestra los archivos que aún están pendientes por confirmar.
git add . -> Agregar los cambios para ser confirmados.
git commit -m “descripción” -> confirmar los cambios.
5. Ir a github, crear un nuevo repositorio, no marcar la opción de crear archivo readme.md.
6. Copiar la url del repositorio creado con extensión .git
7. Ir a la terminal donde está el repositorio local y ejecutar el siguiente comando:
git remote add origin <url>
8. Enviar los cambios locales al remoto usando el comando:
git push origin master <o main>

Estructura del proyecto Spring:

 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.

Navegando por el archivo pom.xml


Lo primero a tener en cuenta es el elemento <parent> y, más específicamente, su hijo <version>.
Esto especifica que su proyecto tiene spring-boot-starter-parent como su POM principal. Entre
otras cosas, este POM principal proporciona administración de dependencias para varias
bibliotecas que se usan comúnmente en proyectos de Spring. Para aquellas bibliotecas cubiertas
por el POM padre, no tendrá que especificar una versión, porque se hereda del padre. La versión
3.1.0 indica que está usando Spring Boot 3.1.0 y, por lo tanto, heredará la administración de
dependencias según lo define esa versión de Spring Boot.

En la sección de dependencias seleccionaremos las dependencias de nuestro proyecto, en este


caso tenemos cuatro: Spring web, thymeleaf, Spring boot DevTools y Spring boot starter test que
es para hacer pruebas y se define implícitamente cuando se construye el proyecto.

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

La anotación @RequestMapping, cuando se aplica a nivel de clase, especifica el tipo de solicitudes


que maneja este controlador. En este caso, especifica que DisenoTacoController manejará las
solicitudes cuya ruta comience con /diseno.

@SessionAttributes

Finalmente, verá que DisenoTacoController está anotado con @SessionAttributes ("tacoOrden").


Esto indica que el objeto Orden que se coloca en el modelo un poco más tarde en la clase debe
mantenerse en sesión. Esto es importante porque la creación de un taco también es el primer paso
para crear un pedido, y el pedido que creamos deberá llevarse a cabo en la sesión para que pueda
abarcar varias solicitudes.

Manejo de una solicitud GET


La especificación @RequestMapping de nivel de clase se refina con la anotación @GetMapping
que adorna el método mostrarDisenoForm(). @GetMapping, junto con @RequestMapping de nivel
de clase, especifica que cuando se recibe una solicitud HTTP GET para /diseno, Spring MVC llamará
a mostrarDisenoForm() para manejar la solicitud. @GetMapping es solo un miembro de una
familia de anotaciones de asignación de solicitudes. La siguiente tabla enumera todas las
anotaciones de mapeo de solicitudes disponibles en Spring MVC.

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

También notará un método llamado agregarIngredientesModel() que está anotado con


@ModelAttribute. Este método también se invocará cuando se maneje una solicitud y construirá
una lista de objetos Ingrediente que se colocarán en el modelo. Seguido de este método, también
tenemos dos métodos anotados con @ModelAttribute los cuales son ordenar() y getTaco() que
crean dos objetos orden y taco y los pone en el modelo

Validaciones
Se debe declarar la dependencia “validation” en el proyecto spring.

Usamos las siguientes anotaciones en las clases POJO para validación de campos:

@NotNull: Especificamos que el campo no puede ser nulo.


@Size: Indicamos que el campo debe cumplir una longitud mínima o máxima, también se puede
indicar un mensaje en caso de que no se cumpla el tamaño del campo.
@NotBlank: Se valida que el campo no quede en blanco.
@CreditCarNumber: Validar si en el campo se ingresó una tarjeta de crédito correcta.
@Pattern: Se indica un patrón que debe cumplir el campo.
@Digits: Valida que el campo sea numérico, número de dígitos, número de decimales.

Posteriormente, en el controlador se debe especificar la anotación @Valid en los objetos a los


cuales se están validando sus campos. Si hay algún error de validación, los detalles de esos errores
se capturarán en un objeto Errors

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:

Trabajando con controladores de vistas.


Cuando un controlador es lo suficientemente simple como para no llenar un modelo o una entrada
de proceso, como es el caso de su HomeController, hay otra forma de definir el controlador. Eche
un vistazo a la siguiente lista para ver cómo puede declarar un controlador de vista, un controlador
que no hace nada más que reenviar la solicitud a una vista.
Lo más importante a tener en cuenta sobre WebConfig es que implementa la interfaz Web-
MvcConfigurer. WebMvcConfigurer define varios métodos para configurar Spring MVC. Aunque es
una interfaz, proporciona implementaciones predeterminadas de todos los métodos, por lo que
debe sobrescribir solo los métodos que necesita. En este caso, sobrescribe addViewControllers().

El método addViewControllers() recibe un ViewControllerRegistry que puede usar para registrar


uno o más controladores de vista. Aquí, llama a addViewController() en el registro, pasando "/",
que es la ruta por la cual su controlador de vista manejará las solicitudes GET. Ese método
devuelve un objeto ViewControllerRegistration, en el que llama inmediatamente a setViewName()
para especificar home como la vista a la que se debe reenviar una solicitud de "/".

También podría gustarte