Spring Bootアプリケーションがあります。多くの依存関係を追加しましたが(残念ながら、すべての依存関係が必要です)、起動時間がかなり長くなりました。a SpringApplication.run(source, args)
を実行するだけで10秒かかります。
これは「慣れている」ものと比べてそれほど多くはないかもしれませんが、それが開発フローを壊してしまうために、それだけかかることは不満です。この時点ではアプリケーション自体はかなり小さいので、ほとんどの場合、アプリケーションクラス自体ではなく、追加された依存関係に関連していると思います。
問題はクラスパススキャンであると思いますが、次の方法がわかりません。
- それが問題であることを確認します(つまり、Spring Bootを「デバッグ」する方法)
- それが本当に原因である場合、どうすれば制限できるので、速くなりますか?たとえば、Springがスキャンする必要のあるものが依存関係またはパッケージに含まれていないことがわかっている場合、それを制限する方法はありますか?
私がいることを前提とし、起動時にパラレル豆の初期化を持って春を強化することは、物事をスピードアップするだろうが、その機能拡張要求は、任意の進行せず、2011年以来開いてきました。Investigate Tomcat JarScanningの速度の改善など、Spring Boot自体にもいくつかの取り組みが見られますが、それはTomcat固有のものであり、放棄されています。
この記事:
統合テストを目的としていますが、の使用を推奨しlazy-init=true
ていますが、これをJava構成を使用してSpring BootのすべてのBeanに適用する方法がわかりません-ここにポインタがありますか?
(その他の)提案があれば歓迎します。
@ComponentScan
ているパッケージがある場合、それらもスキャンされます。もう1つのことは、一般にロギングが非常に遅いため、デバッグまたはトレースロギングを有効にしていないことを確認することです。