Spring Boot está construido en la parte superior del resorte y contiene todas las características del resorte. Y se está convirtiendo en el favorito de los desarrolladores en estos días debido a su rápido entorno listo para producción que les permite concentrarse directamente en la lógica en lugar de luchar con la configuración y la instalación. Spring Boot es un marco basado en microservicios y crear una aplicación lista para producción lleva muy poco tiempo. Las siguientes son algunas de las características de Spring Boot:
- Permite evitar la configuración pesada de XML que está presente en primavera.
- Proporciona fácil mantenimiento y creación de puntos finales REST
- Incluye servidor Tomcat incorporado
- La implementación es muy fácil, los archivos war y jar se pueden implementar fácilmente en el servidor tomcat
Las anotaciones de Spring son una forma de metadatos que proporcionan datos sobre un programa. Las anotaciones se utilizan para proporcionar información complementaria sobre un programa. No tiene un efecto directo sobre el funcionamiento del código que anotan. No cambia la acción del programa compilado. Entonces, en este artículo, analizaremos las anotaciones que están disponibles en Spring Boot con ejemplos.
Anotaciones de arranque de primavera
Las anotaciones Spring presentes en los paquetes org.springframework.boot.autoconfigure org.springframework.boot.autoconfigure.condition se conocen comúnmente como anotaciones Spring Boot. Algunas de las anotaciones que están disponibles en esta categoría son:
- @SpringBootApplication
- @SpringBootConfiguration
- @EnableAutoConfiguration
- @ComponentScan
- Condiciones de configuración automática
- @ConditionalOnClass y @ConditionalOnMissingClass
- @ConditionalOnBean y @ConditionalOnMissingBean
- @CondicionalEnPropiedad
- @CondicionalEnRecurso
- @ConditionalOnWebApplication y @ConditionalOnNotWebApplication
- @Expresión condicional
- @Condicional
1. Anotación @SpringBootApplication
Esta anotación se usa para marcar la clase principal de una aplicación Spring Boot. Encapsula las anotaciones @SpringBootConfiguration , @EnableAutoConfiguration y @ComponentScan con sus atributos predeterminados.
Ejemplo:
Java
@SpringBootApplication // Class public class DemoApplication { // Main driver method public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
2. Anotación @SpringBootConfiguration
Es una anotación de nivel de clase que forma parte del marco Spring Boot. Implica que una clase proporciona la configuración de la aplicación Spring Boot. Se puede usar como una alternativa a la anotación @Configuration estándar de Spring para que la configuración se pueda encontrar automáticamente. La mayoría de las aplicaciones Spring Boot usan @SpringBootConfiguration a través de @SpringBootApplication. Si una aplicación usa @SpringBootApplication, ya está usando @SpringBootConfiguration.
Ejemplo:
Java
@SpringBootConfiguration public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } @Bean public StudentService studentService() { return new StudentServiceImpl(); } }
3. Anotación @EnableAutoConfiguration
Esta anotación configura automáticamente los beans que están presentes en el classpath. Simplifica el trabajo del desarrollador al asumir los beans necesarios del classpath y configurarlo para ejecutar la aplicación. Esta anotación es parte del marco de arranque de Spring. Por ejemplo, cuando ilustramos la dependencia spring-boot-starter-web en classpath, Spring boot configura automáticamente Tomcat y Spring MVC . El paquete de la clase que declara la anotación @EnableAutoConfiguration se considera predeterminado. Por lo tanto, debemos aplicar la anotación @EnableAutoConfiguration en el paquete raíz para que se puedan examinar todos los subpaquetes y clases.
Ejemplo:
Java
@Configuration @EnableAutoConfiguration public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
4. Anotación @ComponentScan
@ComponentScan le dice a Spring en qué paquetes tiene clases anotadas que debe administrar Spring. Entonces, por ejemplo, si tiene una clase anotada con @Controller que está en un paquete que Spring no escanea, no podrá usarla como un controlador Spring. Entonces podemos decir que @ComponentScan permite que Spring busque cosas como configuraciones, controladores, servicios y otros componentes que están definidos. Generalmente, la anotación @ComponentScan se usa con la anotación @Configuration para especificar el paquete para que Spring busque componentes.
Ejemplo:
Java
@Configuration @ComponentScan // Main class public class Application { // Main driver method public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
5. Anotación @ConditionalOnClass y Anotación @ConditionalOnMissingClass
Anotación @ConditionalOnClass utilizada para marcar el bean de configuración automática si la clase en el argumento de la anotación está presente/ausente.
Ejemplo:
Java
@Configuration @ConditionalOnClass(MongoDBService.class) class MongoDBConfiguration { // Insert code here }
6. Anotación @ConditionalOnBean y anotación @ConditionalOnMissingBean
Estas anotaciones se utilizan para permitir que se incluya un bean en función de la presencia o ausencia de beans específicos.
Ejemplo:
Java
@Bean @ConditionalOnMissingBean(type = "JpaTransactionManager") JpaTransactionManager jpaTransactionManager( EntityManagerFactory entityManagerFactory) { // Insert code here }
7. Anotación @ConditionalOnProperty
Estas anotaciones se utilizan para permitir que la configuración se incluya en función de la presencia y el valor de una propiedad de Spring Environment.
Ejemplo:
Java
@Bean @ConditionalOnProperty(name = "usemongodb", havingValue = "local") DataSource dataSource() { // Insert code here } @Bean @ConditionalOnProperty(name = "usemongodb", havingValue = "prod") DataSource dataSource() { // Insert code here }
8. Anotación @ConditionalOnResource
Estas anotaciones se utilizan para permitir que la configuración se incluya solo cuando un recurso específico está presente en el classpath.
Ejemplo:
Java
@ConditionalOnResource(resources = "classpath:mongodb.properties") Properties additionalProperties() { // Insert code here }
9. Anotación @ConditionalOnExpression
Estas anotaciones se utilizan para permitir que la configuración se incluya en función del resultado de una expresión SpEL (Spring Expression Language).
SpEL (Spring Expression Language): es un potente lenguaje de expresión que permite consultar y manipular un gráfico de objetos en tiempo de ejecución.
Ejemplo:
Java
@Bean @ConditionalOnExpression("${env} && ${havingValue == 'local'}") DataSource dataSource() { // Insert code here }
10. Anotación @ConditionalOnCloudPlatform
Estas anotaciones se utilizan para permitir que se incluya la configuración cuando la plataforma en la nube especificada está activa.
Ejemplo:
Java
@Configuration @ConditionalOnCloudPlatform(CloudPlatform.CLOUD_FOUNDRY) public class CloudConfigurationExample { // Insert code here }
Publicación traducida automáticamente
Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA