В нашем приложении мы столкнулись с проблемами производительности с компонентным сканированием. Это довольно медленно, и его производительность не зависит от количества классов в отсканированном пакете.
Каждая строка, подобная этой, в нашем конфигурационном файле sping:
<context:component-scan base-package="foo.bar" />
добавляет 2 минуты на время запуска нашего приложения. Количество классов в отсканированном пакете не имеет значения - мы испытываем такую же задержку как для пакетов с классами 10 и 1k.
Почему производительность компонентного сканирования не зависит от размера отсканированного пакета?
Мы используем смешанный подход для создания spring beans - мы используем как определения xml, так и проверку компонентов. Может ли это быть причиной такого поведения?