Почему класс Spring Boot Application должен иметь аннотацию @Configuration?

Я изучаю Spring Framework, но не могу понять, что именно@Configuration аннотация означает и какие классы должны быть аннотированы так. В документах Spring Boot сказано, что класс Application должен быть@Configuration учебный класс.

Spring Boot поддерживает конфигурацию на основе Java. Хотя можно вызывать SpringApplication.run () с источником XML, мы обычно рекомендуем, чтобы вашим основным источником был класс @Configuration.

Пытаясь узнать о@Configuration Я считаю, что аннотирование класса с@Configuration указывает, что класс может использоваться контейнером IoC Spring в качестве источника определений компонента.

Если это так, то как этот класс приложения является источником определений бина?

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

Я в значительной степени понял большинство других базовых концепций, касающихся Spring, но не могу понять цель@Configuration или какие классы должны быть@Configuration классы? Может кто-нибудь, пожалуйста, помогите. Спасибо !!

Ответы на вопрос(2)

Ваш ответ на вопрос