Ответ
Нет, не всегда. Spring обнаруживает классы с @Configuration только при соблюдении условий:
- Класс находится в пределах сканируемых пакетов. Область сканирования задаётся
@ComponentScanили определяется расположением класса с@SpringBootApplication. - Класс доступен в classpath.
Примеры:
-
Класс будет найден (в зоне сканирования):
@SpringBootApplication // Сканирует пакет com.example и вложенные public class App {} @Configuration // Находится в com.example.config public class MyConfig {} -
Класс НЕ будет найден автоматически (вне зоны сканирования):
@Configuration // Находится в com.thirdparty.library public class ExternalConfig {}Для его регистрации потребуется явно импортировать его с помощью
@Import(ExternalConfig.class)или использовать другие механизмы (например,BeanDefinitionRegistryPostProcessor).