Spring Boot
Spring Boot
Spring Boot
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
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")
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.
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.