我有一個Spring 3服務方法,我想返回一個PrivateKey/PublicKey keyPair,它是否是線程安全的,以便將KeyPairGenerator作爲服務中的一個實例級別變量來避免必須調用KeyPairGenerator。的getInstance(ALGO),並對其進行初始化的方法調用,或者我應該保持的KeyPairGenerator本地的服務方法和調用.getInstance(ALGO)和.initialize(...)爲每個方法調用,即:Spring服務方法線程安全
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());
}
Are there第二種方法可能出現的併發問題?第一種方法的性能損失是否顯着?
順便說一句,你的return語句中的括號是不必要的 –