0% encontró este documento útil (0 votos)
424 vistas54 páginas

01 - Spring Boot

El documento proporciona una introducción a Spring Framework. Explica algunas de sus características clave como inyección de dependencias, acceso a datos, gestión de transacciones e integración. También describe conceptos como inversión de control y el framework Spring MVC. Finalmente, resume los pasos iniciales para crear un proyecto Spring usando STS/Maven, incluyendo la configuración de dependencias, la creación de un controlador y una vista.
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
424 vistas54 páginas

01 - Spring Boot

El documento proporciona una introducción a Spring Framework. Explica algunas de sus características clave como inyección de dependencias, acceso a datos, gestión de transacciones e integración. También describe conceptos como inversión de control y el framework Spring MVC. Finalmente, resume los pasos iniciales para crear un proyecto Spring usando STS/Maven, incluyendo la configuración de dependencias, la creación de un controlador y una vista.
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 PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 54

Spring Boot

Sesión 1
https://www.arquitecturajava.com/que-es-spring-boot/
Spring FrameWork
Características de Spring FrameWork
• Tecnologías: Spring es completamente modular y soporta diferentes tecnologías como la inyección de dependencias, eventos,
recursos, i18n, validación, enlace de datos, conversión de tipo, SpEL.
• Acceso a datos: soporte DAO, JDBC, ORM, Marshalling XML.
• Gestión de transacciones.
• Integración: comunicación remota, JMS, JCA, JMX, correo electrónico, tareas, programación, caché.
• Pruebas (Testing): simulacro de objetos, el framework TestContext, Spring MVC prueba, WebTestClient.
• Programación orientada a aspectos (AOP): permite la implementación de rutinas transversales.
• Facilita en gran medida la programación basada en MVC (Modelo Vista Controlador) y una implementación rápida basada
en Inyección de Dependencias (Dependency Injection).
• Es un Framework que tiene un especial foco sobre la Seguridad.
• Compatible con Frameworks web: Spring WebFlux y Spring MVC.
• Permite el procesamiento de datos por lotes.
• Administración Remota: a través de este módulo se puede configurar la visibilidad y gestión de los objetos Java para la
configuración local o remota vía JMX.
• Es un framework liviano debido a su implementación POJO (Plain Old Java Object), Spring Framework no obliga al programador a
heredar ninguna clase ni a implementar ninguna interfaz
Arquitectura
de Spring
FrameWork
Spring – Hibernate - Maven
Dependencias - Maven
• Maven son
dependencias.
• Maven busca la
librería, jar, que
necesita nuestro
proyecto
https://spring.io/tools
STS Sprint Tool Suite
WorkSpace - STS
Conceptos
• Inversión de Control (IoC)
• El framework Spring Web MVC
• Acceso a Datos mediante JPA
• Integración mediante tests
IoC – Inversión de control
https://miblogtecnico.wordpress.com/tag/spring-ioc/

• El core de Spring se basa en el concepto de Inversión de Control (IoC), más específicamente en la


Inyección de Dependencias (DI).
• Este es un proceso en el cual los objetos definen sus dependencias (es decir, los otros objetos con
los que trabajan) solo a través de los argumentos de su constructor, argumentos a un método de
factory, o métodos setter que son invocados después de que el objeto se ha construido.
• En este caso en vez de ser el mismo objeto quien se encargue de instanciar, o localizar, las
dependencias con las que trabaja (usando directamente su constructor o un localizador de
servicios), es el contenedor el que inyecta estas dependencias cuando crea al bean.
• Este proceso, como podemos observar, es el inverso al que normalmente se hace, y de ahí el
nombre de Inversión de Control (es el framework el que hace el trabajo)
Software
• Java SDK 1.7+
• Spring Source Tool Suite 3.7.3
• Maven 2

¿Qué versiones tenemos nosotros?


Crear proyecto Maven

En Spring podemos crear


proyecto Maven, Gradle, Java o
generarlo con Spring Boot
Ubicación del proyecto
Archetype
Maven permite la gestión de
dependencias entre proyectos
y permite definir diferentes
componentes (llamados
artifacts) que forman parte
de un grupo de trabajo.

https://thepracticaldeveloper.com/archetypes/
Posible warning en el
proyecto por el uso de
diferentes versiones de la
JDK. (Build Path del
proyecto).
En las últimas versiones
de STS también aparece
un error en el fichero JSP
porque todavía no se ha
incorporado la
dependencia 'servlet-api'.
Estructura de proyecto

El subdirectorio 'src/main/resources' que contendrá todos los


recursos utilizados por la aplicación.

El subdirectorio 'src/main/webapp' que alojará todos los


archivos que no sean código fuente Java, como archivos JSP y
de configuración.

El directorio 'target' donde se generará el archivo WAR que


usaremos para almacenar y desplegar rápidamente nuestra
aplicación.

El fichero 'pom.xml' que contiene las dependencias Maven.


Web.xml
En los proyectos Maven se gurda la
configuración básica del proyecto en
'web.xml' dentro del directorio
'src/main/webapp/WEB-INF'

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-
app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<display-name>Springapp</display-name>

</web-app>
https://maven.apache.org/pom.html
Pom.xml

• Project Object Model


• Librerías y
configuración del
proyecto
• Descarga las librerías al
guardar
• Por defecto .m2
index.jsp
En aplicaciones Web, Maven ya ha
creado un archivo JSP muy simple
llamado 'index.jsp' en el directorio
'src/main/webapp'.
Run as
Tomcat

En proyectos Web
necesitamos un
servidor de
aplicaciones en donde
desplegar la aplicación
Descargar – Instalar Tomcat

Vuelve a Browse
Desplegar la aplicación
Maven
• Utilizaremos Maven para gestionar las dependencias del proyecto con
Spring Framework así como para descargar otras librerías adicionales
necesarias
• https://mvnrepository.com/
• Actualizar fichero pom.xml
• Librerias se descargan automáticamente al guardar el fichero pom
Se añaden en la ficha dependencias
Provided : proporcionada por el
servidor que despliega la aplicación
Propiedades Maven
WebLogic - Despliegue

En WebLogic 11G es necesario añadir la


dependencia de 'joda-time' para evitar un error del
tipo 'java.lang.ClassNotFoundException:
org.joda.time.LocalDate'
web.xml
• Se encuentra en el directorio 'src/main/webapp/WEB-INF'.
• Es posible modificar 'web.xml' que tuvierámos inicialmente.
• DispatcherServlet (también llamado 'Controlador Frontal'.
• Su misión será controlar hacia dónde serán enrutadas todas nuestras
solicitudes basándose en información que introduciremos posteriormente.
• La definición del servlet tendrá como acompañante una entrada <servlet-
mapping/> que mapeará las URL que queremos que apunten a nuestro
servlet.
• En el ejemplo, permitimos que cualquier URL con una extensión de tipo
'.htm' sea enrutada hacia el servlet 'springapp' ( DispatcherServlet).
Error al no tener el archivo creado
app-config.xml
• Creamos la carpeta 'src/main/webapp/WEB-INF/spring' y dentro el
archivo llamado 'app-config.xml'.
• Este archivo contendrá las definiciones de beans (POJO's) usados por
el DispatcherServlet.
• Este archivo es el WebApplicationContext donde situaremos todos los
componentes.
• Por tanto, utilizaremos el asistente para la creación de ficheros de
tipo 'Spring Bean Configuration File'.
• Se puede crear un archivo xml
POJO - Plain Old Java Object
https://carlospesquera.com/que-es-un-pojo-ejb-y-un-bean/

Un POJO es una instancia de una clase que no


extiende ni implementa nada en especial.
Beans http://www.sc.ehu.es/sbweb//fisica/cursoJava/applets/javaBeans/fundamento.htm

Un JavaBean (o también conocido simplemente


como Bean) es una clase simple en Java que
cumple con ciertas normas con los nombres de
sus propiedades y métodos.
Controlador
• Clase anotada con la etiqueta
@Controller (a la que llamaremos
HelloController.java)
• Definida dentro del paquete
'com.ejemplo.springapp.web' del
directorio 'src/main/java‘

• Crear Nueva clase


Qué es un controlador
• Esta implementación del controlador, mediante la anotación @Controller, es muy
sencilla.
• En Spring Web MVC, los componentes @Controller manejan las solicitudes y
devuelven normalmente un objeto ModelAndView.
• En este caso, uno llamado 'saludo.jsp', el cual hace referencia al nombre del
archivo JSP que vamos a crear a continuación.
• El modelo que esta clase devuelve es resuelto a través del ViewResolver.
• Puesto que no hemos definido explicítamente un ViewResolver, vamos a obtener
uno por defecto de Spring que simplemente redigirá a una dirección URL que
coincida con el nombre de la vista especificada.
• Especificamos un logger de manera que podemos verificar que pasamos por el
manejador en cada momento.
• Usando STS, estos mensajes de log deben mostrarse en la pestaña 'Console'.
Vista
• Ahora es el momento de crear nuestra primera
vista.
• Estamos redirigiendo hacia una página JSP
llamada 'saludo.jsp'.
• Para empezar, crearemos este fichero en el
directorio 'src/main/webapp'.
Compilar y desplegar la aplicación
• Para ejecutar la aplicación de nuevo, seleccionamos de nuevo 'Run as
> Run on Server'
• Desde el navegador que ofrece STS, o desde cualquier otro
navegador, abrir la URL http://localhost:8080/springapp/saludo.htm.
Error posible

También podría gustarte