属性文件中的Grails域类属性

时间:2010-03-16 17:13:43

标签: grails properties grails-domain-class

在我的grails应用程序中,我想从属性文件中读取一些值,并在启动时将其设置为Grails Domain类的静态属性。

示例

Class A{

  static myValues="1,2";
} 

 class B{
   static myValues="2,3";
  }

在上面的例子中,我直接给出了输入。而不是我想从一个config.properties文件中读取它,它将具有以下内容

A = 1,2

B = 2,3

是否有可能在grails中这样做。请帮助我。

1 个答案:

答案 0 :(得分:6)

如果你把config.properties放在grails-app / conf中,那么它将在classpath中,grails-app / conf / BootStrap.groovy中的这段代码将加载属性并设置值:

class BootStrap {

   def init = { servletContext ->
      def props = new Properties()
      def cl = Thread.currentThread().contextClassLoader
      props.load cl.getResourceAsStream('config.properties')
      props.each { key, value ->
         def clazz = Class.forName(key, true, cl)
         clazz.myValues = value
      }
   }
}

显然,您需要检查属性文件是否可用,类,是否存在等。