2

Clojure プログラムの開始時に、次のことを行います。

(def db-coords
    {:classname "org.postgresql.Driver"
     :subprotocol "postgresql"
     :subname (str "//" host ":" port "/" dbname) ;; host, port and dbname are defd above
     :user      "foo"
     :password  "bar"})

これらの値をクラスパス上の外部ファイル (.clj など) に保存し、そこからロードしたいと思います。明らかに、それを行う 1 つの方法はjava.util.Propertiesを使用することですが、Clojure には慣用的な方法があると思います。

4

3 に答える 3

5

read-stringでspitslurpを使用することを検討してください。

Clojure には、データ構造をシリアライズおよびデシリアライズする機能が組み込まれています。

ファイルにシリアル化するには:

(spit "./coords.txt" db-coords)

ファイルを文字列としてロードして逆シリアル化するには:

(read-string (slurp "./coords.txt"))
于 2013-02-09T22:48:42.133 に答える
1

clj-config は、唾を吐く読み取り文字列 API をカプセル化する優れたライブラリです。

https://github.com/Raynes/clj-config

于 2013-02-15T20:23:22.763 に答える
0

Clojure マップと JVM システム プロパティを介して環境固有の構成領域を処理するためのライブラリを作成しました。

https://github.com/bbbates/confijulate これは、私がすべてのプロジェクトで何度も繰り返しているパターンでした。

于 2013-12-30T01:05:05.137 に答える