2016-07-16 24 views
0

は、私は次のように入力ストリームを介して負荷のいくつかのファイルがあります。春のフレームワークのInputStreamの起動時の読み込み

InputStream model = new FileInputStream(modelFile); 

をしかし、このプロセスはかなり遅いですので、私は、要求が来る時にロードするのではなく、起動時にそれらを一度にロードする必要があります。

私は.NET MVCでGlobal.asaxCacheHelperのようないくつかの方法を知っていますが、Spring MVCで行う方法はわかりません。

答えて

0

私はどのように考え出しましたか? Springには、onStartupメソッドを含むことができる 'Global.asax'に相当するInitializerクラスがあります。たとえば、起動時にモデルを読み込みたい場合は、このコードをここに入力します。

public void onStartup(ServletContext container) throws ServletException { 
    try (AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext()) { 
     ctx.register(BaseConfiguration.class); 
     ctx.setServletContext(container); 
     ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(ctx)); 

     servlet.setLoadOnStartup(1); 
     servlet.addMapping("/"); 
     try { 
      LoadModels(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
0

基本的に、Springコンテキストの開始が完了すると、初期化が必要になります。

Springでこれを行う1つの方法は、Springの管理対象Beanの1つを実装し、InitializingBeanを実装することです。 また、標準Javaアノテーション@PostConstructJSR-250)を使用することもできます。

詳しくはat the docをご覧ください。

関連する問題