Anotaciones básicas de Spring Boot que todos deberían saber

Publicado: 2021-12-13

Java Spring Framework es un marco de código abierto y de nivel empresarial que se utiliza para crear aplicaciones independientes de nivel de producción que se ejecutan en la máquina virtual de Java (JVM). Para ello, Java Spring Boot es una herramienta que simplifica y acelera el desarrollo de aplicaciones web y microservicios con Spring Framework. Para esto, Java Spring Boot aprovecha tres capacidades principales: configuración automática, un enfoque obstinado para la configuración y el potencial para crear aplicaciones independientes. La fusión de estas funciones principales proporciona una herramienta que permite a los desarrolladores configurar aplicaciones basadas en Spring con configuraciones mínimas.

Antes de las anotaciones, el comportamiento de Spring Framework estaba mayormente controlado por la configuración XML. Sin embargo, las anotaciones de Spring Boot han alterado drásticamente la forma en que puede configurar los comportamientos de Spring Framework.

En este artículo, repasaremos algunas de las anotaciones básicas en Spring Framework.

Tabla de contenido

¿Qué son las anotaciones de Spring Boot?

Las anotaciones de Spring Boot son una forma de metadatos. No forman parte de la aplicación en desarrollo per se, pero proporcionan datos complementarios sobre un programa. Las anotaciones no tienen un impacto directo en la operación del código que anotan, ni alteran la acción del programa compilado.

Las aplicaciones Spring requieren un grado significativo de configuración. Spring Boot es un marco obstinado que se basa en Spring Framework. Minimiza los esfuerzos de configuración y el modelo estándar que uno necesita para comenzar. Las anotaciones de Spring Boot son la clave para obtener control sobre Spring Framework, dirigir el marco y anular sus valores predeterminados cuando sea necesario. Estas anotaciones son fáciles de usar y más rápidas que crear funcionalidades equivalentes desde cero.

Anotaciones de Spring Boot que todos deberían saber

Aunque Spring Boot funciona con Java, Groovy y Kotlin, nos centraremos en Java mientras analizamos las anotaciones importantes de Spring Boot.

1. @Configuración

@Configuration se usa en clases que definen beans. Un análogo del archivo de configuración XML es una anotación de nivel de clase que se utiliza como fuente de definiciones de beans. Una clase Java anotada @Configuration es una configuración en sí misma y tiene métodos para configurar e instanciar dependencias.

Ejemplo:

@Configuración

autobús de clase pública

{

motor @BeanBus()

{

devolver nuevo Bus();

}

}

2. @frijol

Una alternativa a la etiqueta XML <bean>, la anotación @Bean se usa a nivel de método para indicar que un método produce un bean para ser administrado por el contenedor Spring. Esta anotación funciona junto con @Configuration para crear Spring beans. @Configuration tiene métodos para configurar e instanciar dependencias, y @Bean anota dichos métodos.

Ejemplo:

@Frijol

BeanExample público beanExample ()

{

devolver nuevo BeanExample (),

}

3. @ComponentScan

La anotación @ComponentScan se usa para escanear un paquete de beans. Se usa junto con la anotación @Configuration para que Spring conozca los paquetes que se deben escanear en busca de componentes anotados.

Ejemplo:

@ComponentScan(paquetes base = “com.xyz”)

@Configuración

Clase pública ScanComponent

{

//…

}

4. @Componente

La anotación @Component se usa en las clases para indicar un componente Spring. Es una anotación a nivel de clase que convierte la clase en Spring bean durante el escaneo automático.

Ejemplo:

@Componente

Profesores de clase pública

{

……

}

5. @Habilitar configuración automática

La anotación @EnableAutoConfiguration generalmente se coloca en la clase de aplicación principal y define implícitamente un paquete de búsqueda base. En función de la configuración de classpath, varias configuraciones de propiedades y otros beans, @EnableAutoConfiguration indica a Spring Boot que comience a agregar beans.

6. @SpringBootApplication

La anotación @SpringBootApplication agrega tres anotaciones: @Configuration, @EnableAutoConfiguration y @ComponentScan. Se usa en la clase de la aplicación mientras se configura el proyecto Spring Boot, y la clase anotada con @SpringBootApplication se coloca en el paquete base. @SpringBootApplication realiza análisis de componentes, pero solo de los subpaquetes.

7. @Repositorio

La anotación @Repository se usa en clases de Java que acceden directamente a la base de datos. Funciona como un marcador para las clases que cumplen el rol de Objeto de acceso a datos o repositorio.

Ejemplo:

@Repositorio

TestRepository de clase pública

{

eliminación de vacío público ()

{

// código de persistencia

}

}

8. @Servicio

Es una anotación a nivel de clase que marca una clase de Java que realiza un servicio, como ejecutar lógica comercial, realizar cálculos o llamar a API externas. Una anotación @Service es una forma especial de la anotación @Component para usar en la capa de servicio.

Ejemplo:

@Servicio

servicio de prueba de clase pública

{

servicio public void1()

{

// código comercial

}

}

9. @Autocableado

Esta anotación inyecta implícitamente dependencia de objetos y se aplica a campos, constructores y métodos setter. Cuando se usa @Autowired en los campos y los valores de los campos se pasan usando el nombre de la propiedad, Spring asigna automáticamente los campos con los valores pasados.

10. @Controlador

La anotación @Controller se usa en clases Java que sirven como controlador en una aplicación. Permite la detección automática de clases de componentes en el classpath y también registros automáticos de definiciones de beans para ellos. La anotación @Controller se usa normalmente con @RequestMapping, y las clases de Java anotadas con @Controller pueden manejar varias asignaciones de solicitudes.

Ejemplo:

@Controlador

@RequestMapping(“coches”)

clase pública CarsController

{

@RequestMapping(valor= “/{nombre}”, método= RequestMethod.GET)

empleado público getCarsByName()

{

Devolución de cochesTemplate;

}

}

11. @RequestMapping

La anotación @RequestMapping se usa tanto a nivel de método como de clase. Sirve para asignar solicitudes web a métodos de controlador y clases de controlador específicos. Cuando @RequestMapping se usa en métodos, proporciona la URL en la que se producirá la ejecución de los métodos del controlador. Por el contrario, cuando la anotación se usa a nivel de clases, crea una URL base para la cual se usará el controlador. Por lo tanto, cada método de controlador tendrá su asignación de solicitud respectiva, mientras que la asignación de solicitud a nivel de clase sigue siendo la misma.

Ejemplo:

@Controlador

clase pública FlowersController

{

@RequestMapping (“/color-rojo/flores”)

Cadena pública getAllFlowers (Modelo modelo)

{

// código de aplicación

volver "lista de flores";

}

12. @Calificador

@Qualifier se usa junto con @Autowired cuando se necesita más control sobre el proceso de inyección de dependencia. La anotación @Qualifier se puede especificar en parámetros de método o en argumentos de constructores individuales. Las confusiones suelen surgir cuando el desarrollador crea más de un bean del mismo tipo, pero solo uno de ellos tiene que estar conectado con una propiedad. La anotación @Qualifier resulta útil para eliminar estas confusiones.

Ejemplo:

@Componente

La clase pública BeanB1 implementa BeanInterface {

//

}

@Componente

La clase pública BeanB2 implementa BeanInterface {

//

}

En el ejemplo anterior, BeanInterface está implementado por los dos beans BeanB1 y BeanB2. Ahora, si BeanA conecta automáticamente esta interfaz, Spring no sabría cuál de las dos implementaciones debería inyectar. Puede resolver este problema utilizando la anotación @Qualifier. Con esta anotación en su lugar, Spring sabrá cuál de los beans conectar automáticamente.

@Componente

clase pública BeanA {

@autocableado

@Calificador(“beanB2”)

dependencia privada de BeanInterface;

}

13. @Valor

La anotación @Value se utiliza en los niveles de campo, parámetro de método y parámetro de constructor. Denota una expresión de valor predeterminado para el parámetro o campo con el que inicializar la propiedad.

14. @Perezoso

La anotación @Lazy se aplica a las clases de componentes. Al inicio, todas las dependencias conectadas automáticamente se crean y configuran de manera predeterminada. Pero la anotación @Lazy se puede usar si el desarrollador quiere inicializar un bean de forma perezosa. Por lo tanto, el bean se crea e inicializa solo a pedido. La anotación @Lazy también se puede usar en las clases @Configuration, lo que significa que todos los métodos @Bean en esa @Configuration se iniciarán de forma diferida.

Si bien esta lista de anotaciones de Java Spring Boot no es exhaustiva, cubre más o menos las más básicas que todo desarrollador o entusiasta de Java debería conocer. Después de todo, Spring Boot ha simplificado el desarrollo de aplicaciones basadas en Spring y vale la pena conocerlo.

Maestría en Ciencias en Ciencia de Datos de la Universidad John Moores de Liverpool

Si es un aspirante a científico de datos, esta es una oportunidad para aprender de los mejores. upGrad ofrece una Maestría en Ciencias en Ciencia de Datos en línea en asociación con la Universidad John Moores de Liverpool, especialmente diseñada para profesionales en activo que buscan perfeccionar sus habilidades y conocimientos de ciencia de datos.

Aquí hay algunos aspectos destacados del programa de un vistazo:

  • Maestría de LJMU y Executive PGP de IIT Bangalore
  • Más de 500 horas de aprendizaje repletas de sesiones en vivo, estudios de casos y proyectos
  • Cobertura completa de más de 14 herramientas y software
  • Tres especializaciones únicas
  • Asistencia profesional dedicada de 360 ​​grados
  • Aprendizaje entre pares y trabajo en red de la industria

Los programas de aprendizaje inmersivos y relevantes para la industria de upGrad han impactado a más de 500 000 profesionales que trabajan en todo el mundo y continúan estableciendo altos estándares en la industria EdTech superior. ¡Entonces, presente su solicitud hoy y únase a la base global de más de 40,000 estudiantes repartidos en 85 países!

Aprenda cursos de ciencia de datos en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

¿Cuál es el propósito del iniciador Spring Boot?

Los iniciadores de Spring Boot son descriptores de dependencia que permiten agregar archivos jar en el classpath. Cada iniciador tiene el siguiente patrón de nomenclatura en el marco Spring Boot: spring-boot-starter-*, donde * representa un tipo de aplicación en particular.

¿Cuál es la diferencia entre @SpringBootApplication y @EnableAutoConfiguration?

La tarea principal de @EnableAutoConfiguration es habilitar las funciones de configuración automática de la aplicación Spring Boot. Por el contrario, @SpringBootApplication combina tres anotaciones: @ComponentScan para el escaneo de componentes, @Configuration para la configuración basada en Java en Spring Framework y @EnableAutoConfiguration para permitir la configuración automática en las aplicaciones Spring Boot.

¿Se puede ejecutar Spring Boot sin SpringBootApplication?

No es obligatorio usar @SpringBootApplication para crear una aplicación Spring Boot. Todavía puede usar @EnableAutoConfiguration y @Configuration individualmente.