在我的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中有一种惯用的方式。
答案 0 :(得分:5)
考虑将 spit 和 slurp 与 read-string 一起使用。
Clojure具有内置的序列化和反序列化其数据结构的能力。
要序列化到文件:
(spit "./coords.txt" db-coords)
以字符串形式加载文件并反序列化:
(read-string (slurp "./coords.txt"))
答案 1 :(得分:1)
clj-config是一个很好的库,它封装了spit,read-string api
答案 2 :(得分:0)
我已经创建了一个用于通过Clojure映射和JVM系统属性处理env特定配置区域的库:
https://github.com/bbbates/confijulate 这是我发现自己一遍又一遍地重复每个项目的模式。