2016-02-29 9 views
14

私の意見では、SpringBootプロジェクトの読み込みに時間がかかります。これはおそらくSpringBootがあなたのためにコンポーネントを構成しているために起こります。 最も明白なことは、クラスパスから不要な依存関係を削除することです。しかし、それだけでは不十分です。スプリングブートの起動時間を最小限にする

SpringBootが必要としないものを選んで無効にするためにどのモジュールを設定しているかを知る方法はありますか?

一般にSpringBootアプリケーションの起動時間を短縮するために他に何かできることはありますか?

答えて

25

私は、Spring MVC、JMS、Atomikosトランザクション、Hibernate、JMXサポート、および埋め込みTomcatを介して安らかなWebサービスを使用して、大きな(800,000+行のコード)アプリケーションを実行していることがわかります。これで、アプリケーションは約19秒で私のローカルデスクトップ上で起動します。

スプリングブートは、使用していないモジュールを設定しないようにします。ただし、意図しない追加の依存関係や構成を導入するのは簡単です。

Spring Bootは、設定パラダイムの規則に従います。クラスパスにライブラリを置くだけで、Springブートがライブラリを使用するようにモジュールを設定しようとする可能性があります。また、@RestControllerを使用してクラスに注釈を付けるなどの単純な操作を行うと、SpringBlockがトリガされ、Spring MVCスタック全体が自動的に構成されます。

コマンドラインからアプリケーションを起動するときに、--debugと指定して簡単にデバッグログを有効にし、デバッグログを有効にすることができます。また、application.propertiesでdebug = trueを指定することもできます。また

、あなたはのような単純なapplication.propertiesにログレベルを設定することができます:あなたはしたくない、自動構成されたモジュールを検出した場合、それは無効にすることができ

。このためドキュメントはここで見つけることができます:http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-disabling-specific-auto-configuration

例は次のようになります。

@Configuration 
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) 
public class MyConfiguration { 
} 
関連する問題