【问题标题】:How can I execute code before DataSource.groovy is evaluated in Grails?如何在 Grails 中评估 DataSource.groovy 之前执行代码?
【发布时间】:2012-05-17 08:14:18
【问题描述】:

DataSource.groovy 似乎在 BootStrap.groovy 之前被评估。但是,我需要进行一些设置,以便可以在 DataSource.groovy 中调用一些静态方法(我的数据库设置很复杂)。

更多信息:

如果我在没有 Grails 的情况下这样做,我可能会创建一个 DataSourceFactory Spring Bean。然后我会声明这个 bean 和其他代码之间的依赖关系,这样我就可以显式地控制一切初始化的时间。在我的 DataSourceFactory 类的 PostConstruct 方法中,我将执行调用我公司的属性/配置框架所需的代码,以获取必要的数据库连接信息。

所以,我正在寻找的是对如何构建 JDBC 数据源的完整(或至少更多)编程控制。

【问题讨论】:

  • 你想评估什么样的代码? DataSource.groovy 只是一个配置文件,基本上它只定义了 grails 其他部分使用的 key=>value 对
  • 这将有助于更多地了解您的数据库设置的复杂方式。可能有一种简单的方法可以满足您的需求。

标签: grails


【解决方案1】:

DataSource.groovy 被评估为一个可执行的 groovy 文件。为什么不一开始就调用你的方法呢?例如:

MyApp.doExtraDatabaseConfig()

dataSource {
    ...
}

【讨论】:

  • 这可能会奏效。我有点担心直接从 DataSource 文件调用我的部分 Bootstrap 代码会变得一团糟,但也许这是我唯一的选择。
猜你喜欢
  • 1970-01-01
  • 2018-10-07
  • 2014-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-13
  • 2019-03-26
  • 2016-12-25
相关资源
最近更新 更多