AWS Java SDKに含まれるクライアントはすべてThread-Safeであり、クライアントを再利用すべきです。もちろん自前でClientを保持するクラスを書いても良いのですが、GuiceによるDIを使っているのであればProviderを定義するのがオススメです。
AWS SDKはもともとインタフェイスが定義されているので、そのインタフェイスに対してGuiceのProviderを定義し、共有クライアントをProvider内で管理します。クライアントを使う部分では、下記のように注入するだけなので、コードの見通しが非常に良くなります。
@Inject AmazonDynamoDBAsync client; もしくは @Inject Provider<AmazonDynamoDBAsync> clientProvider;
Provider自体はすぐに書けるコードなのですが、再利用性が高そうなのでgithubで公開しました。
参考URL
0 件のコメント:
コメントを投稿