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étodoSpringApplication.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?