I am learning about the Spring Framework but I can\'t understand what exactly the @Configuration
annotation means and which classes should be annotated so. In t
You understood it right.
@Configuration
is an analog for xml file. Such classes are sources of bean definitions by defining methods with the @Bean
annotation.
@Configuration
is:
sources
parameter when calling the SpringApplication.run()
method;@ComponentScan
annotation of your main configuration class.For readability, classes that are even explicitly passed as sources
may anyway be annotated with @Configuration
- just to show the intentions more clearly.
Your current class is not really source of bean definitions, because it doesn't have any, but if you had @Bean
annotated methods, Spring would see them.
Can be used with or without @Configuration
. It tells Spring to setup some basic infrastructure judging by what you have in the classpath. It's done by invoking a so called import class that's derived from the value of the @Import
annotation that @EnableAutoConfiguration
includes. Only one class should be annotated with @EnableAutoConfiguration
, duplicating it doesn't do anything.
This answer may also be helpful to understand the Spring Boot initialization process: Which piece of code in Spring Boot actually registers dispatcher servlet for SpringMVC?