gpt4 book ai didi

grails - 您可以在Grails数据源配置文件中引用远程资源吗?

转载 作者:行者123 更新时间:2023-12-02 16:02:13 25 4
gpt4 key购买 nike

我想从远程资源配置Grails数据源的url属性。 (我想在etcd中保留一些信息)。例如像这样:

def jsonSlurper = new JsonSlurper()
def urlConfig = jsonSlurper.parseText(new URL("http://127.0.0.1:2379/v2/keys/dataSource/url").text)
dataSource {
....
url = ${urlConfig.node.value}
}

如果在启动应用程序时在配置文件中打印url值,则显示预期值。但是,使用动态方法时会发生以下错误:

Caused by: org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is java.sql.SQLException: Driver:com.mysql.jdbc.Driver@44a3eec9 returned null for URL:jdbc:h2:mem:grailsDB;MVCC=TRUE;LOCK_TIMEOUT=10000



因此,如果不进行修改,看来这种方法将行不通。那正确吗?即Grails当前是否仅支持在数据源配置文件中将数据库URL值配置为静态字符串?

最佳答案

我们这样加载外部数据源配置文件,也许您可​​以尝试。

DataSource.groovy:

import org.springframework.core.io.support.PropertiesLoaderUtils as PLU
import org.springframework.core.io.ClassPathResource as CPR
...
try {
ConfigObject properties = new ConfigSlurper().parse(PLU.loadProperties(new CPR('DataSource.properties')))
dataSource.merge( properties.dataSource )
hibernate.merge( properties.hibernate )
} catch (java.io.FileNotFoundException e){}

DataSource.properties:
dataSource.url = jdbc:oracle:thin:@localhost:1521:orcl
...
hibernate.properties.xxxx = dddd

关于grails - 您可以在Grails数据源配置文件中引用远程资源吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29310698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com