欢迎进入Wiki » FAQ » 如何使用外部properties文件配置数据源?

如何使用外部properties文件配置数据源?

在2013-10-29 19:08上被李小翔修改
评论 (0) · 附件 (0) · 记录 · 信息

默认情况下,grails通过 grails-app/conf/DataSource.groovy 加载数据源信息,这种方式有利有弊,最大的不便之处在于必须编译后才能生效。

google一下,有很多类似的解决方案,通过加载一个外部的 properties 文件来代替/补充 DataSource.groovy。

安装 BroToolkit 后,自动生成的 DataSource.groovy 中,包含了调用外部 DataSource.properties 的代码,此外,还会在工程的 src/java 下生成一个示例 properties 文件。

简单分析一下 DataSource.groovy 文件:

import org.springframework.core.io.support.PropertiesLoaderUtils as PLU;
import org.springframework.core.io.ClassPathResource as CPR;

......
environments {
    production {
       // 定义数据源
       dataSource {
           ......
       }
       // 从 DataSource.properties 中加载数据库连接信息
       try {
            ConfigObject properties = new ConfigSlurper().parse(PLU.loadProperties(new CPR('DataSource.properties')));
            dataSource.merge( properties.dataSource );
            dataSource_auditlog?.merge( properties.dataSource_auditlog );
            hibernate.merge( properties.hibernate );
       } catch (java.io.FileNotFoundException e){}
   }
}

以及 DataSource.properties 文件示例:

# 默认数据源
dataSource.driverClassName = oracle.jdbc.driver.OracleDriver
dataSource.username = bropen
dataSource.password = password
dataSource.url = jdbc:oracle:thin:@localhost:1521:orcl

dataSource.properties.maxActive = 50
dataSource.properties.maxIdle = 25
dataSource.properties.minIdle = 5
dataSource.properties.initialSize = 5

# 多数据源
dataSource_auditlog.driverClassName = oracle.jdbc.driver.OracleDriver
dataSource_auditlog.username = bropen
# ......
在2013-10-29 19:08上被李小翔创建

Copyright © 2013 北京博瑞开源软件有限公司
京ICP备12048974号