如何在Grails启动期间从文件加载DSL代码?

时间:2014-06-20 14:42:26

标签: grails groovy dsl

我创建了一个扩展类BuilderSupport的groovy DSL,它现在看起来像这样:

def menu = new MenuBuilder().create {
  item "something.label" : "something"
  item "other.label" : "other"
  item "asd.label": "asd", {
     "test.label": "test"
  }
}

其中create实际上不是函数,它只是根节点的标准名称, item "X": "Y"表示一个菜单项,其中 X 是标签, Y 是项目的目标控制器。

DSL已经在运作。我的问题是如何才能实现它,这样您就可以在单独的文件中指定DSL,然后在Grails应用程序启动时加载它,类似于Grails的Bean的DSL和约束的DSL。

该文件中只包含以下代码。

{
  item "something.label" : "something"
  item "other.label" : "other"
  item "asd.label": "asd", {
     "test.label": "test"
  }
}

感谢您的关注

1 个答案:

答案 0 :(得分:0)

您可以在外部配置文件中指定DSL,并在主配置中加载该外部配置。

DSL将像所有其他配置一样可用

这个答案应该有所帮助:Grails - Cannot read externalized configuration values