2017-09-18 23 views
0

クラスの数が増えた後、アプリケーションが開始されるまで2分以上かかります。私たちは開発効率を低くすると思います...アプリケーションを起動するときに、リポジトリを遅延ロードする方法は?

そして、私が 'lazyInit = true'このオプションを追加すると、ほとんどのクラスは遅延ロードされますが、このオプションを追加してもリポジトリはロードされます。

@ComponentScan(basePackageClasses = LazyApplication.class,lazyInit=true) 
@EnableAutoConfiguration(
) 
public class LazyApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(LazyApplication.class, args); 
    } 
} 

実際には、私たちのシステムは300以上のリポジトリとエンティティを持っていますので、可能であればリポジトリを怠惰にしたいと思います。

リポジトリを作成するにはどうすればいいですか 初めてアプリケーションにアクセスしたときにアプリケーションをロードするときに読み込まないでください。

答えて

1

設定クラスで@Orderアノテーションを使用して、ロード順序を定義できます。最も高い優先順位のアドバイスが最初に実行されます。数値が小さいほど優先順位が高くなります。 例:

@Component 
@Order(2) 
public class MyRepo { 
    public String getName() { 
     return "some value"; 
    } 
} 
+0

お手数ですが、この方法を試しましたが、開始タイミングでリポジトリが読み込まれます。開始時間はまだ同じです。 –

+0

見逃したことがあればお読みください。 https://stackoverflow.com/a/24296037/4423636 –

関連する問題