Свойства класса предметной области Grails из файла свойств

В моем приложении Grails я хочу прочитать некоторые значения из файла свойств и установить его в статическое свойство класса домена Grails при запуске.

Пример

Class A{

  static myValues="1,2";
} 

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

В приведенном выше примере я напрямую дал входные данные. Вместо этого я хочу прочитать его из одного файла config.properties, который будет иметь следующее

A=1,2

B=2,3

Возможно ли это сделать в Grails. Помогите мне, пожалуйста.


person DonX    schedule 16.03.2010    source источник


Ответы (1)


Если вы поместите config.properties в grails-app/conf, тогда он будет в пути к классам, и этот код в 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
      }
   }
}

Очевидно, вам нужно будет проверить, доступен ли файл свойств, существуют ли классы и т. д.

person Burt Beckwith    schedule 16.03.2010