0% encontró este documento útil (0 votos)
134 vistas

Spring Boot

Spring es un framework de Java que permite desarrollar aplicaciones de forma más rápida y eficaz mediante inversión de control e inyección de dependencias. Spring Web MVC es un subproyecto que facilita la creación de aplicaciones web siguiendo el patrón MVC, mientras que Spring Boot simplifica la configuración de aplicaciones Spring.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
134 vistas

Spring Boot

Spring es un framework de Java que permite desarrollar aplicaciones de forma más rápida y eficaz mediante inversión de control e inyección de dependencias. Spring Web MVC es un subproyecto que facilita la creación de aplicaciones web siguiendo el patrón MVC, mientras que Spring Boot simplifica la configuración de aplicaciones Spring.
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Spring: Es un framework del lenguaje de programación de java.

Nos permite desarrollar aplicaciones de manera más rápida,


eficaz y corta, saltándonos repetitivas y ahorrándose líneas de código.
Inversión de Control: (IoC) Significa que ahora hemos invertido el control de crear el objeto desde nuestro propio uso de un
operador nuevo a un contenedor o marco. Ahora es responsabilidad del contenedor crear el objeto según sea necesario.
IoC Container: Es el corazón de Spring Framework. Su trabajo es instanciar, inicializar y conectar objetos de la aplicación,
gestionando el ciclo de vida de nuestros objetos.
Inyección de Dependencia: Es un tipo de inversión de control, donde el manejo de las propiedades de un objeto es inyectado
a través de un constructor, un setter, un servicio, etc.
Spring Web MVC: Es un sub-proyecto Spring que está dirigido a facilitar y optimizar el proceso creación de aplicaciones web
utilizando el patrón MVC (Modelo-Vista-Controlador), donde el Modelo representa los datos o información que manejará la
aplicación web, la Vista son todos los elementos de la UI (Interfaz de Usuario), con ellos el usuario interactúa con la aplicación,
ejemplo: botones, campos de texto, etc., finalmente el Controlador será el encargado manipular los datos en base a la
interacción del usuario.
 La pieza central de Framework Spring MVC es el DispatcherServlet que extiende la clase HttpServlet este
componente es el encargado de recibir las peticiones HTTP y generar la respuesta adecuada a dicha petición,
tradicionalmente se configura utilizando el archivo web.xml aunque utilizando la especificación Servlet 3.0+ es posible
configurar programáticamente, su funcionamiento básico se muestra en el siguiente diagrama:
Spring Data: Es uno de los frameworks que se encuentra dentro de la plataforma de Spring. Su objetivo es simplificar al
desarrollador la persistencia de datos contra distintos repositorios de información (SpringDataRedis, SpringDataJPA,
SpringDataMongoDB).
Spring Data JPA: Es parte de la familia más grande de Spring Data, facilita la implementación fácil de repositorios basados
en JPA. Este módulo trata sobre el soporte mejorado para capas de acceso a datos basadas en JPA.
Spring @Configuration: Anotación encargada de definir que la clase es una clase de configuración para el framework.
Spring @Bean: Anotación que marca como bean cada uno de los métodos de tal forma que estén disponibles para Spring.

Spring Boot

Spring Boot está diseñado con los siguientes objetivos:


 Para evitar configuraciones XML complejas en Spring
 Desarrollar aplicaciones Spring listas para producción de una manera más fácil.
 Para reducir el tiempo de desarrollo y ejecutar la aplicación de forma independiente
 Ofrecer una manera más fácil de comenzar con la aplicación.

Puede elegir Spring Boot debido a las características y beneficios que ofrece como se indica aquí:
 Proporciona una forma flexible de configurar Java Beans, configuraciones XML y transacciones de bases de datos.
 Proporciona un potente procesamiento por lotes y gestiona puntos finales REST.
 En Spring Boot, todo se configura automáticamente; No se necesitan configuraciones manuales.
 Ofrece una aplicación de resorte basada en anotaciones.
 Facilita la gestión de dependencias
 Incluye contenedor de servlet incorporado

Como trabaja Spring Boot:


Spring Boot configura automáticamente su aplicación en función de las dependencias que haya agregado al proyecto mediante
la anotación @EnableAutoConfiguration. Por ejemplo, si la base de datos MySQL está en su classpath, pero no ha
configurado ninguna conexión de base de datos, Spring Boot configura automáticamente una base de datos en memoria.
El punto de entrada de la aplicación Spring Boot es que la clase contiene la anotación @SpringBootApplication y el método
principal. Spring Boot escanea automáticamente todos los componentes incluidos en el proyecto mediante la anotación
@ComponentScan.

Spring Boot CLI


Es una herramienta de línea de comandos y nos permite ejecutar los scripts Groovy. Esta es la forma más fácil de crear una
aplicación Spring Boot utilizando la interfaz de línea de comandos de Spring Boot. Puede crear, ejecutar y probar la aplicación
en el símbolo del sistema.

Application Runner
Es una interfaz utilizada para ejecutar el código después de que se inició la aplicación Spring Boot.

Spring @Data: Para generar configuradores automáticos y captadores del proyecto jar lombok.

Redis
@Cacheable: Para almacenar en caché, ej: @Cacheable (value = "book", key = "#title")
@CacheEvict: Para eliminar de la memoria cache cuando se elimine un registro,
ej: @CacheEvict (value = "book", key = "#title")
@CachePut: Para actualizar los datos, ej: @CachePut(value = "book", key = "#title")

Gradle: Es un sistema de gestión y construcción de dependencias.

LocalContainerEntityManagerFactoryBean: Esto nos permite controlar las configuraciones de EntityManagerFactory y nos


permite realizar personalizaciones. También nos permite inyectar el PersistenceContext en nuestros componentes de la
siguiente manera:
@PersistenceContext
private EntityManager em;

Fuente de datos: Aquí devolvemos una instancia de DriverManagerDataSource . Es una implementación simple de la
interfaz JDBC DataSource estándar, que configura un controlador JDBC antiguo y sencillo a través de las propiedades del
bean, y devuelve una nueva conexión para cada llamada de getConnection. Tenga en cuenta que recomiendo usar esto
estrictamente para propósitos de prueba, ya que hay mejores alternativas como BasicDataSource disponibles.

Anotación Detalles
@SpringBootApplication Anotación principal de la aplicación de arranque de muelle. Se utiliza una vez en la
aplicación, contiene un método principal y actúa como paquete principal para el
escaneo de paquetes. Esta anotación proporciona en sí misma otras 3 anotaciones
que ayudan con el escaneo automático:
@SpringBootConfiguration, @EnableAutoConfiguration, @ComponentScan
@SpringBootConfiguration Indica que una clase proporciona la aplicación Spring Boot. Debe declararse solo
una vez en la aplicación, generalmente de forma automática mediante la
configuración de @SpringBootApplication
@EnableAutoConfiguration Habilitar la configuración automática del contexto de la aplicación Spring. Debe
declararse solo una vez en la aplicación, generalmente de forma automática
mediante la configuración de @SpringBootApplication
@ComponentScan Se utiliza para activar el escaneo automático de paquetes en un paquete
determinado y sus hijos o para configurar el escaneo de paquetes personalizados
@Configuration Se utiliza para declarar uno o más métodos @Bean. Puede seleccionarse mediante
el escaneo automático de paquetes para declarar uno o más métodos @Bean lugar
de la configuración xml tradicional.
@Frijol Indica que un método produce un bean para ser administrado por el contenedor
Spring. Por @Bean general, los métodos anotados de @Bean se colocarán en las
clases anotadas de @Configuration que se seleccionarán mediante el escaneo del
paquete para crear beans basados en la configuración de Java.
@Component Al declarar una clase como @Component se convierte en un candidato para la
detección automática cuando se utiliza la configuración basada en anotaciones y el
escaneo de classpath. Por lo general, una clase anotada con @Component se
convertirá en un bean en la aplicación.
@Repository Definido originalmente por Domain-Driven Design (Evans, 2003) como "un
mecanismo para encapsular el almacenamiento. Normalmente se usa para indicar
un Repository para spring data.
@Service Muy similar en la práctica a @Component. originalmente definido por Domain-
Driven Design (Evans, 2003) como "una operación ofrecida como una interfaz que
se mantiene aislada en el modelo, sin estado encapsulado".
@Controller Indica que una clase anotada es un "Controlador" (por ejemplo, un controlador web).
@RestController Una anotación de conveniencia que se anota con @Controller y @ResponseBody.
Se seleccionará automáticamente de forma predeterminada porque contiene la
anotación @Controller que se selecciona de forma predeterminada.

@ComponentScan algunos de los atributos útiles de @ComponentScan:

1. Los paquetes base se pueden usar para indicar paquetes específicos para escanear. useDefaultFilters: al establecer este
atributo en falso (el valor predeterminado es verdadero), puede asegurarse de que Spring no escanee @Component ,
@Repository , @Service o @Controller automáticamente.
2. includeFilters : se puede usar para incluir anotaciones de primavera / patrones de expresiones regulares para incluir en el
escaneo de paquetes.
3. excludeFilters: se pueden usar para excluir anotaciones específicas de primavera / patrones de expresiones regulares para
incluir en el escaneo de paquetes.
@Value: Se usa para leer el entorno o el valor de propiedad de la aplicación en código Java.
@RestController: Se utiliza para definir los servicios web RESTful. Sirve JSON, XML y respuesta personalizada.
@RequestMapping: Se utiliza para definir el URI de solicitud para acceder a los puntos finales REST. Podemos definir el
método de solicitud para consumir y producir objetos. El método de solicitud predeterminado es GET
@RequestBody: Se usa para definir el tipo de contenido del cuerpo de la solicitud.
@PathVariable: Se utiliza para definir el URI de solicitud personalizado o dinámico. La variable Path en el URI de solicitud se
define como llaves {}
@RequestParam: Se usa para leer los parámetros de solicitud de la URL de solicitud. Por defecto, es un parámetro requerido.

GET API
El método de solicitud HTTP predeterminado es GET. Este método no requiere ningún cuerpo de solicitud.
Puede enviar parámetros de solicitud y variables de ruta para definir la URL personalizada o dinámica.
El código de muestra para definir el método de solicitud HTTP GET se muestra a continuación. En este ejemplo, utilizamos
HashMap para almacenar el Producto. Tenga en cuenta que usamos una clase POJO como el producto que se almacenará.
Aquí, el URI de solicitud es / productos y devolverá la lista de productos del repositorio de HashMap. A continuación, se
muestra el archivo de clase del controlador que contiene el método GET REST Endpoint.

POST API
La solicitud HTTP POST se usa para crear un recurso. Este método contiene la solicitud Cuerpo. Podemos enviar parámetros
de solicitud y variables de ruta para definir la URL personalizada o dinámica.
El siguiente ejemplo muestra el código de muestra para definir el método de solicitud HTTP POST.
En este ejemplo, utilizamos HashMap para almacenar el Producto, donde el producto es una clase POJO.
Aquí, el URI de solicitud es / productos, y devolverá la Cadena después de almacenar el producto en el repositorio de
HashMap.

PUT API
La solicitud HTTP PUT se usa para actualizar el recurso existente. Este método contiene un cuerpo de solicitud. Podemos
enviar parámetros de solicitud y variables de ruta para definir la URL personalizada o dinámica.
El siguiente ejemplo muestra cómo definir el método de solicitud HTTP PUT. En este ejemplo, utilizamos HashMap para
actualizar el Producto existente, donde el producto es una clase POJO.
Aquí el URI de solicitud es / products / {id}, que devolverá la Cadena después de un producto en un repositorio HashMap.
Tenga en cuenta que utilizamos la variable de ruta {id} que define la identificación de los productos que debe actualizarse.

DELETE API
La solicitud de eliminación HTTP se utiliza para eliminar el recurso existente. Este método no contiene ningún cuerpo de
solicitud. Podemos enviar parámetros de solicitud y variables de ruta para definir la URL personalizada o dinámica.
El siguiente ejemplo muestra cómo definir el método de solicitud DELETE HTTP. En este ejemplo, utilizamos HashMap para
eliminar el producto existente, que es una clase POJO.
El URI de solicitud es / products / {id} y devolverá la Cadena después de eliminar el producto del repositorio de HashMap.
Utilizamos la variable de ruta {id} que define la identificación de los productos que debe eliminarse.

@ExceptionHandler
Es una anotación utilizada para manejar las excepciones específicas y enviar las respuestas personalizadas al cliente.
Puede usar el siguiente código para crear la clase @ControllerAdvice para manejar las excepciones globalmente

Interceptor
Puede usar el Interceptor en Spring Boot para realizar operaciones en las siguientes situaciones:
 Antes de enviar la solicitud al controlador
 Antes de enviar la respuesta al cliente.

Por ejemplo, puede usar un interceptor para agregar el encabezado de solicitud antes de enviar la solicitud al controlador y
agregar el encabezado de respuesta antes de enviar la respuesta al cliente.
Para trabajar con interceptor, debe crear la clase @Component que lo admita y debe implementar la interfaz
HandlerInterceptor.

Los siguientes son los tres métodos que debe conocer mientras trabaja en Interceptores:
 Método preHandle(): se utiliza para realizar operaciones antes de enviar la solicitud al controlador. Este método debe
devolver verdadero para devolver la respuesta al cliente.
 Método postHandle(): se utiliza para realizar operaciones antes de enviar la respuesta al cliente.
 Método afterCompletion(): se utiliza para realizar operaciones después de completar la solicitud y la respuesta.

También podría gustarte