PrivateKey/PublicKey keyPair を返したい Spring 3 サービス メソッドがあります。KeyPairGenerator.getInstance(algo) を呼び出して初期化する必要がないように、KeyPairGenerator をサービスのインスタンス レベル変数として持つことはスレッド セーフですか。メソッド呼び出しまたは KeyPairGenerator をサービス メソッドに対してローカルに保持し、メソッド呼び出しごとに .getInstance(algo) および .initialize(...) を呼び出す必要があります。
public KeyPair getKeyPair() throws ... {
KeyPairGenerator keyGenerator = KeyPairGenerator.getInstance(algo);
keyGenerator.initialize(1024);
return (keyGenerator.genKeyPair());
}
また
public KeyPair getKeyPair() throws ... {
// use instance level keyGenerator that has been previously initialized
return (keyGenerator.genKeyPair());
}
2 番目のアプローチで同時実行の問題が発生する可能性はありますか? 最初のアプローチでは、パフォーマンスが大幅に低下しますか?