Spring Boot – Anotaciones

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *