Контекст приложения Spring - это, по сути, «пул» bean-компонентов (служебных объектов, которые включают контроллеры, преобразователи, объекты доступа к данным и т. Д.) И связанной информации, которые определяют приложение; Я рекомендую справочное введение . Теоретически вы можете усложнить настройку контекста и иметь иерархическую организацию и тому подобное, но в большинстве реальных случаев у вас есть только один простой контекст.
Внутри этого контекста вам нужно установить все компоненты которые предоставляют logi c для вашего приложения. Есть несколько возможных способов сделать это, но два основных способа - предоставить XML файлы с такими директивами, как bean
(определение отдельного bean-компонента) или component-scan
(автоматический поиск классов с определенными аннотациями, включая * 1007). *) и с использованием Java классов, аннотированных @Configuration
, которые могут использовать аннотации и @Bean
методы.
Стиль XML, как правило, более старый, а новые приложения в основном используют конфигурацию Java, но оба предоставляют записи, которые собираются в контексте, и вы можете использовать их одновременно. Однако в любом приложении вы должны предоставить некоторый способ запуска регистрации, и обычно у вас будет один файл «root» XML или класс конфигурации, который затем импортирует другие XML файлы. и / или классы конфигурации. В устаревшем приложении на основе web.xml
вы указываете это в своем файле конфигурации сервлета.
Spring Boot, как вы сказали, по сути, представляет собой набор готовых к go классов конфигурации вместе с механизмом для автоматического определения конфигураций и их активации. Но даже для этого требуется конфигурация root! Это инструкция @EnableAutoConfiguration
, часто используемая через ее составной @SpringBootApplication
. Контекст приложения и механизмы конфигурации работают нормально, как только Boot находит их и загружает. Spring знает, с чего начать, потому что вы даете ему явную инструкцию для создания контекста, начиная с этой точки входа, обычно с SpringApplication.run(MyApplication.class, args)
.
Конфигурация встроенного сервера представляет собой действительно полезный набор конфигураций, который поставляется с одним из начальных пакетов загрузки. Там нет ничего, что вы не могли сделать в приложении, отличном от Boot.