私はJackson JSON parserを使用したいJavaサーブレットを持っています。Java Servletで最終的な静的定数を取得することをお勧めしますか?
複数回インスタンス化するのではなく(サーブレットのさまざまな機能で使用します)、静的な最終として宣言し、同じサーブレットの異なるメソッド間で 'ObjectMapper'を再利用するのは安全ですか?ここで
は、私は現在、それを持っているかの例です:
public class ServiceExample extends HttpServlet {
private final static ObjectMapper jsonHelper = new ObjectMapper();
public void doSomething() {
jsonHelper.writeValueAsString(new SomeObject());
}
public void doSomethingElse() {
jsonHelper.writeValueAsString(new SomeOtherObject());
}
}
私は、これは大丈夫だったことをどこかで読ん思ったが、私はダブルチェックしたかったです。
編集
According to this, it is thread-safe so long as it's configured before it's used.
感謝。
スレッドセーフである場合のみ。 –
Dave Newtonsのコメントを少し拡大しました。 ObjectMapperクラスがスレッドセーフである場合、サーブレットに最終的な静的ObjectMapperを持たせることは良いことです。 ObjectMapperがスレッドセーフでない場合は、リクエストごとに新しいObjectMapperを作成します。 – DwB
ありがとうございます。投稿を更新しました。「ObjectMapper」は、使用する前に設定されている限り、スレッドセーフです。 – Cuga