2017-11-05 6 views
0

スプリングブートでは、RESTコールのあらゆる種類の対応するタイムスタンプを持つDB(たとえば、RedisまたはES)の永続カウンタを維持できる方法はありますか? (私が探していないのは、すべてのREST呼び出しの中から関数を呼び出すことです)。おそらく、コントロールがREST呼び出しに相当する関数、つまり共通部分に渡される前に、私がそれを行うことができるかのようなものでしょう。すべてのRESTコールの永続カウンタ

+0

はhttp://metrics.dropwizard.io/3.2.3/manual/indexを見てください。 html。これは、データを書き込むためのさまざまなバックエンドをサポートしています。そして、Springブートafaikに関連して、クラスパスにライブラリを追加するだけで、RESTエンドポイントのメトリックを持つことができます。私はそれが各要求のタイムスタンプの保存をサポートするかどうかはわかりませんが。そのためには、サーブレットフィルタを使用できます。 – dunni

+0

最も簡単な方法は、** web filter **を使用することです。 – LHCHIN

答えて

0

カスタムインターセプタを実装できます。

public class MyInterceptor extends HandlerInterceptorAdapter { 


    @Override 
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { 
    // persist your counter here 
     return true; 
    } 

    @Override 
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { 
     super.afterCompletion(request, response, handler, ex); 
    // do what you need in the end of the call 
    } 

春ブートは、あなたのインターセプタを起動コンフィギュレーションクラスを追加する必要があります作るために:

@Service 
@EnableWebMvc 
public class MyConfiguration extends WebMvcConfigurerAdapter { 

    @Override 
    public void addInterceptors(InterceptorRegistry registry) { 
     registry.addInterceptor(new MyInterceptor()).addPathPatterns("/*"); 
    } 

} 
+0

ありがとう! その他の質問: 1.春の起動時にインターセプタを使用するように指示するにはどうすればよいですか?設定ファイルの種類はありますか? 2.非同期呼び出しのように見えるので、実際のREST呼び出しのパフォーマンスに余分なオーバーヘッドが追加されることはありません。右? –

+0

確かに、 私の答えを編集しました。 – amazia

関連する問題