明らかに、パスなどをアプリケーションにハードコーディングしないようにしたいので、結果として、文字列などの単純なものを格納する設定ファイルを作成したいと思います。これを行う最も簡単な方法は何ですか?私は、ココアがオブジェクトの永続性をどのように使用するのかを考えていましたが、同等のものは見つけられません。Javaで設定ファイルを実行する最も簡単な方法は何ですか?
答えて
propertiesファイルを使用して、java.util.Propertiesクラスで操作することができます。
これはWebベースのアプリケーションの場合、これらをアプリケーションサーバーのコンソール/ファイル内の環境変数(またはカスタムプロパティ)の一部として追加できます。
スタンドアロンアプリケーションの場合は、単純なプロパティファイルで十分です。
あなたが言った事実に基づいて、
私は例外処理をしなかったことに留意してください。あなたはストリームのためにそれをする必要があります。
// Save Settings
Properties saveProps = new Properties();
saveProps.setProperty("path1", "/somethingpath1");
saveProps.setProperty("path2", "/somethingpath2");
saveProps.storeToXML(new FileOutputStream("settings.xml"), "");
// Load Settings
Properties loadProps = new Properties();
loadProps.loadFromXML(new FileInputStream("settings.xml"));
String path1 = loadProps.getProperty("path1");
String path2 = loadProps.getProperty("path2");
Webアプリケーションを構築する場合は、Spring 3.0を使用してください。 Beanは、web.xmlファイルとDispatcher-servlet.xmlファイルで定義できます。
一般に、JettyやTomcatなどのWebコンテナでは、環境変数を定義できます。これには、WARファイルを再コンパイルまたは再構築することなく、これらの変数をサーバー間で変更できるという利点があります。
私は通常、この方法を使用して、開発サーバーからステージングサーバーおよび運用サーバーに展開できます。コードやWARファイルを絶えず盗む必要はありません。
基本オブジェクトのシリアライズを検討し、結果をファイルに書き込んだことはありますか?プリファレンスオブジェクトのグラフ全体でシリアライズ可能な設定を実装している限り、問題なくシリアライズできます。
プロパティファイルは良好ですが、バイナリデータまたは永続性については柔軟性がありません。
これは、アプリケーションを構成する方法と、アプリケーションを構成する予定のある人によって異なります。システムのネイティブ設定メカニズム(たとえば、Mac OS Xの〜/ Library、gnomeのgconf、WindowsのシステムレジストリのPLISTファイル)を使用する場合は、java.util.prefs.Preferencesが設定/環境設定を扱う簡単で正確な方法です。これらの設定のデフォルト値だけでなく、キーの名前付き定数を使用してプリファレンスの上に独自のクラスを作成し、おそらくそれらを取得するためのヘルパーメソッドを作成したいと思うでしょう。ここではそれを使用する方法の例です:Preferencesクラスは、あなたのプラットフォーム間でアプリケーションを構成するための単一の方法を与えることはありません、それは必ずしもあなたの設定ファイルを与えるものではありません、と述べた
// Class to wrap some settings
public class AnimationSettings {
private static final String VELOCITY_KEY = "velocity";
private static final double VELOCITY_DEFAULT = 5.0;
public static double getVelocity() {
return getPrefs().getDouble(VELOCITY_KEY, VELOCITY_DEFAULT);
}
public static void setVelocity(int velocity) {
getPrefs().putDouble(VELOCITY_KEY, velocity);
}
public static void sync() {
getPrefs().sync();
}
private static Preferences getPrefs() {
if (preferences_ == null) {
preferences_ = Preferences.userNodeForPackage(AnimationSettings.class);
}
return preferences_;
}
private static Preferences preferences_ = null;
};
// Elsewhere in the application:
//...
double velocity = AnimationSettings.getVelocity();
// ...
。そのために、XML/* .propertiesファイルも、他の回答者の一部が示唆しているような解決策です。しかし、XMLやプロパティファイルを使うことの欠点は、どこに行くべきか、どのように見ていくか、複数のファイルを他のものに置き換える(システム設定やユーザ設定など)必要があるかどうか、 、ファイルが存在しない場合の対処方法などがあります。これらの種類の設定はうまく処理されます。
+1これはクロスプラットフォームでの最適な選択です。 – trashgod
- 1. Javaでカスタムバイナリデータメッセージを設定する最も簡単な方法は何ですか?
- 2. OSXでPostgreSQLを設定する最も簡単な方法は何ですか?
- 3. MacでSASをインストール/実行する最も簡単で簡単な方法は何ですか?
- 4. トリガーで否定を行う最も簡単な方法は何ですか?
- 5. RailsでERBを実装する最も簡単な方法は何ですか?
- 6. Pythonで設定ファイルを作成する最も簡単な方法は何ですか
- 7. letsencryptをプログラムで設定する最も簡単で最も正しい方法は何ですか?
- 8. ファイルをJavascriptプログラムにリンクする最も簡単な方法は何ですか?
- 9. コマンドラインで新しいファイルを作成する最も簡単で簡単な方法は何ですか?
- 10. 行をアニメーション化する最も簡単な方法は何ですか?
- 11. オブジェクトにプロパティを設定する最も簡単な方法は?
- 12. ファイルを検索する方法は、最も簡単で簡単ですか?
- 13. Javaでデータベースメタデータを取得する最も簡単な方法は?
- 14. Eclipse IDEでJava Swing GUIを設計する最も簡単な方法は何ですか?
- 15. JavaでScala PartialFunctionを実装する最も簡単な方法は何ですか?
- 16. 最も簡単なJavaマルチプレイヤーネットワークゲームは何ですか?
- 17. Python Webサーバーで数学的なユーザーコードを実行すると、最も簡単な方法は何ですか?
- 18. Java SwingでWindows Explorerタイプのファイル構造を表示する最も簡単な方法は何ですか?
- 19. Apache + PHPのようなWebサーバーからGroovyを実行する最も簡単な方法は何ですか?
- 20. Visual C++でクエリを実行する最も簡単な方法は何ですか
- 21. PythonでWHOISプロトコルを実行する最も簡単な方法は何ですか?
- 22. EclipseをWebブラウザで実行する最も簡単な方法は何ですか?
- 23. タイマートリガAzure関数を一度ローカルで実行する最も簡単な方法は何ですか?
- 24. メインスレッドの引数の数でメソッドを実行する最も簡単な方法は何ですか?
- 25. JavaScriptで自動候補テキストフィールドを実行する最も簡単な方法は何ですか?
- 26. XAMLでScrollViewerをスタイルする最も簡単な方法は何ですか
- 27. プロミスをES6でラップする最も簡単な方法は何ですか?
- 28. 最も簡単な方法は、javaでhttpリクエストを行うことです
- 29. Javaでjarを解凍する最も簡単な方法
- 30. 春の最も簡単で最も透過的な方法をキャッシングする方法は何ですか?
私は通常このことを考えていますが、私がしたいのは、文字列の設定を保存することだから、プロパティは良い選択のようです。 – Alex
ああ、あなたがココアとの比較を開始したとき、私は一般化しました:-) –