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 或其他文件)中并从那里加载它们。显然,一种方法是使用java.util.Properties,但我怀疑 Clojure 中有一种惯用的方法。

4

3 回答 3

5

考虑将spitslurpread-string一起使用。

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

序列化到文件:

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

要将文件作为字符串重新加载并反序列化:

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

clj-config 是一个很好的库,它封装了 spit、read-string api

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

于 2013-02-15T20:23:22.763 回答
0

我创建了一个库,用于通过 Clojure 映射和 JVM 系统属性处理 env 特定的配置区域:

https://github.com/bbbates/confijulate 这是我发现自己在每个项目中一遍又一遍地重复的模式。

于 2013-12-30T01:05:05.137 回答