당신의 Config.groovy
어떤 점을 포함하지 않는 속성 이름을 위해 일하는 것이
Properties legacyProps = // whatever you need to do to load the legacy properties
for(String propName in legacyProps.stringPropertyNames()) {
setProperty(propName, legacyProps.getProperty(propName))
}
같은 기본적인 트릭을 할 수 있습니다. 점을 포함 할 속성은 Grails의 설정에 추가 될 것입니다하지만 당신은 그들이 당신이 할 수있는 적절한 계층 형태로 추가하려면
grailsApplication.config.property.with.dots
반대로에만 플랫 키, 계층되지는
grailsApplication.config.'property.with.dots'
을 즉 제공 그루비 트릭 당신은 즉,
my.app.foo=bar
my.app.bar=baz
다른 접두사 하나 키가 기존 속성에서 어떤 경우가 없다는 것을 확신 할 수 않는 것이
는 OK이지만,
my.app.foo=bar
my.app=baz
확인하지 않습니다. 속성이이를 만족시키는 경우 다음을 시도하십시오.
Properties legacyProps = // whatever you need to do to load the legacy properties
for(String propName in legacyProps.stringPropertyNames()) {
String[] propParts = propName.split(/\./)
if(propParts.size() == 1) {
// no dots
setProperty(propName, legacyProps.getProperty(propName))
} else {
// we have dots - get the first segment (which is a ConfigObject)
ConfigObject co = getProperty(propParts[0])
if(propParts.size() > 2) {
// then apply all but the last segment to that to get the last parent
co = propParts[1..-2].inject(co) { o, part -> o."${part}" }
}
// then set final segment on the last parent ConfigObject
co."${propParts[-1]}" = legacyProps.getProperty(propName)
}
}
이 속성을 사용자 지정 파일에 저장하거나 사용자 지정 클래스로 저장합니까? –
맞춤 클래스/데이터 형식입니다. 속성 개체로 속성을 노출 할 수있는 bean이 있습니다. – rongenre