У мене є програма Spring Boot. Я додав багато залежностей (на жаль, виглядає, що мені всі вони потрібні) і час запуску збільшився досить багато. Просто робити заняття SpringApplication.run(source, args)
потрібно 10 секунд.
Хоча це може бути не дуже порівняно з тим, до чого "звикли", я незадоволений тим, що це забирає стільки, в основному тому, що це порушує потік розвитку. Сам додаток на даний момент досить малий, тому я припускаю, що більша частина часу пов'язана з додатковими залежностями, а не самими класами програм.
Я припускаю, що проблема полягає в скануванні на уроці, але я не знаю, як:
- Підтвердьте, що це проблема (тобто як "налагодити" Spring Boot)
- Якщо це справді причина, то як я можу її обмежити, щоб вона стала швидшою? Наприклад, якщо я знаю, що якась залежність або пакет нічого не містить, що Spring повинен сканувати, чи є спосіб обмежити це?
Я припускаю, що посилення Spring для паралельної ініціалізації бобів під час запуску пришвидшить ситуацію, але цей запит на покращення відкритий з 2011 року, без жодного прогресу. Я бачу деякі інші зусилля у самій Spring Boot, наприклад, дослідити покращення швидкості Tomcat JarScanning , але це специфічно для Tomcat і було відмовлено.
Ця стаття:
Хоча націлений на інтеграційні тести, пропонує використовувати lazy-init=true
, однак я не знаю, як застосувати це до всіх бобів у Spring Boot за допомогою конфігурації Java - будь-які вказівники тут?
Будь-які (інші) пропозиції будуть вітатися.
@ComponentScan
вони також будуть відскановані. Інша справа - переконатися, що ви не ввімкнули налагодження чи журнал слідів, оскільки загалом журнал повільний, дуже повільний.