utilizar tutorial requestmapping porque mundo hola español ejemplo java spring spring-boot

java - tutorial - ¿Por qué la clase de aplicación Spring Boot necesita tener una anotación de configuración?



spring boot pdf español (2)

Creo que la razón principal por la que la anotación @SpringBootApplication Spring Boot se aplica automáticamente a @Configuration es permitir agregar definiciones de @Configuration en la misma clase. Uno de los objetivos principales de Spring Boot es permitirte crear aplicaciones rápidamente y sin movimientos adicionales. Entonces, al permitirle agregar definiciones de bean directamente a la clase de la aplicación, no necesita crear clases adicionales para mantener su configuración. Tienes solo 1 clase y eso es todo.

Estoy aprendiendo sobre el Framework Spring pero no puedo entender qué significa exactamente la anotación @Configuration y qué clases deberían anotarse así. En los documentos de Spring Boot se dice que la clase de aplicación debería ser la clase @Configuration .

Spring Boot favorece la configuración basada en Java. Aunque es posible llamar a SpringApplication.run () con una fuente XML, generalmente recomendamos que su fuente principal sea una clase @Configuration.

Al intentar obtener información sobre @Configuration , encuentro que anotar una clase con @Configuration indica que el contenedor Spring IoC puede usar la clase como fuente de definiciones de beans.

Si eso es así, ¿cómo es esta clase de aplicación una fuente de definiciones de bean?

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan public class App { public static void main(String[] args) throws Exception { SpringApplication.run(App.class, args); } }

He entendido bastante la mayoría de los otros conceptos básicos relacionados con Spring, pero no puedo entender el propósito de @Configuration o qué clases deberían ser @Configuration clases de @Configuration ? Puede ayudarme alguien, por favor. Gracias !!


Lo entendiste bien.

@Configuración

@Configuration es un archivo analógico para xml. Estas clases son fuentes de definiciones de @Bean al definir métodos con la anotación @Bean .

@Configuration es:

  • no es necesario , si ya pasa la clase anotada en el parámetro de sources cuando llama al método SpringApplication.run() ;
  • requerido , cuando no pasa la clase anotada explícitamente, pero está en el paquete que se especifica en la anotación @ComponentScan de su clase de configuración principal.

Para facilitar la lectura, las clases que incluso se pasan explícitamente como sources pueden anotarse con @Configuration , solo para mostrar las intenciones con mayor claridad.

Su clase actual no es realmente una fuente de definiciones de bean, porque no tiene ninguna, pero si tuviera los métodos anotados de @Bean , Spring los vería.

@EnableAutoConfiguratiom

Se puede utilizar con o sin @Configuration . Le dice a Spring que configure una infraestructura básica a juzgar por lo que tiene en el classpath. Se realiza invocando una llamada clase de importación que se deriva del valor de la anotación @EnableAutoConfiguration que incluye @EnableAutoConfiguration . Solo se debe anotar una clase con @EnableAutoConfiguration , duplicarla no hace nada.

Esta respuesta también puede ser útil para comprender el proceso de inicialización de Spring Boot: ¿Qué parte del código en Spring Boot registra realmente el servlet del despachador para SpringMVC?