Clojure ::将配置数据存储在外部文件中

Mar*_*tus 2 clojure

在我的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"})
Run Code Online (Sandbox Code Playgroud)

我想将这些值存储在类路径的外部文件(.clj或其他)中,并从那里加载它们.显然,一种方法是使用java.util.Properties,但我怀疑在Clojure中有一种惯用的方法.

Sco*_*ott 5

考虑使用带有read-string的spitslurp.

Clojure具有内置的序列化和反序列化其数据结构的能力.

要序列化到文件:

(spit "./coords.txt" db-coords)
Run Code Online (Sandbox Code Playgroud)

要以字符串形式加载文件并反序列化:

(read-string (slurp "./coords.txt"))
Run Code Online (Sandbox Code Playgroud)