Grails 3将YAML解析为ConfigObject

时间:2015-09-28 01:09:57

标签: grails groovy yaml

我正在将Grails插件更新为Grails 3.代码使用ConfigSlurper.parse()将Groovy配置脚本解析为ConfigObject
看来Grails 3的默认配置样式是YAML,那么是否有类似的实用程序将YAML解析为ConfigObject?

2 个答案:

答案 0 :(得分:4)

ConfigObject只是Grails 3中的一个中间类,用于从Groovy配置文件创建PropertySource。配置的类型现在是org.grails.config.PropertySourcesConfig

我不确定是否有更直接的方法来执行此操作,但是这里有一些可以从YAML文件构建PropertySourcesConfig的工作代码:

import org.grails.config.PropertySourcesConfig
import org.grails.config.yaml.YamlPropertySourceLoader
import org.springframework.core.io.FileSystemResource

String name = 'my yaml file'
def resource = new FileSystemResource(new File('/path/to/foo.yml'))
def mapPropertySource = new YamlPropertySourceLoader().load(
      name, resource, null/*profile*/)
def conf = new PropertySourcesConfig(mapPropertySource.getSource())

答案 1 :(得分:0)

如果YAML被解析为Mail::send('emails.invoice1', $data, function ($message) use ($data) { $message->from('admin@mapdip5b.com', 'Sales'); $message->to($data['email'], $data['name'])->subject('Your Payment Has Been Accepted'); }); ,那么您可以在Map的实例上调用putAll

ConfigObject