JavaのREST Webサービスがジャージーで構築されているため、セキュリティ上の理由からOS環境変数にメソッドのパラメータ:DriverManager.getConnection();
を保存します。 URL、ユーザー名、およびパスワード。JavaでSystem.getenv()を使用した場合のパフォーマンスへの影響
すべてのリクエストが自分の接続を作成する必要があるので、System.getenv("key");
への呼び出しがパフォーマンス上の問題であるかどうかを知りたいですか?
そうすることのアイデアは、この記事からです:私は右、一度変数をロード
public class EnvironmentHelper {
static final String URL;
static final String USERNAME;
static final String PASSWORD;
static {
URL = System.getenv("URL");
USERNAME = System.getenv("USERNAME");
PASSWORD = System.getenv("PASSWORD");
}
}
この方法:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-rds.html#java-rds-javase
はこのような何かを持っている良いオプションでしょうか?どんなに多くのリクエストを受けても問題ありません。
それぞれの 'System.getenv'は、ハッシュルックアップと同じくらい時間がかかります。パフォーマンスへの影響はゼロでなければなりません。あなたが関心を持っているならば、自分でそれをプロファイルする必要があります。 – ajb
接続を開く際のオーバーヘッドと比較して、何もせずに 'getenv()'はまったく重要ではありません:*しかし*このテクニックは通常のテクニックより安全です。攻撃者があなたの 'context.xml'ファイルにアクセスできるなら、彼はこれにアクセスできます。 – EJP
@EJPはい、そうです。毎回接続を開いたときの影響を最小限にする唯一の解決策は、接続プールを使用することです。 – Luiz