grails - 如何动态设置数据源属性

标签 grails datasource

我正在使用Grails,并且作为我项目的要求,我想根据用户要求连接到数据库。因此,我必须从用户那里获取数据库凭证,例如用户名,密码,URL。我如何通过在运行时在数据源中设置这些值来连接到他们的数据库。有什么办法可以动态设置这些值?

最佳答案

我将解释这个概念,并让您自己实施。请注意,这并非完全简单,并且确实需要您对细节进行一些研究,但是如果您愿意,可以完成此操作。

这里的基本概念是将应用程序中的每个数据源定义为一个Spring bean。这是任何Grails应用程序的默认行为。这样,您可以用新定义的bean替换bean。在您的情况下,您将需要使用第二个数据源。 Bean名称取决于您在DataSources.groovy中的命名方式。

看一下Grails文档的Spring部分,其中显示了一些配置数据源的示例。同样的概念将适用于您的情况。只需确保使用正确的bean名称,并且在替换现有bean之前还调用了destroy / close方法即可。

根据实现替换的方式(以及是否使用GenericBeanDefinition),您可能需要使用grailsApplication.mainContext.registerBeanDefinition(beanName, beanDefinition)

正如我所说的,这是可以做到的,但是您将不得不学习一些有关Spring和bean定义的内部知识,以及在运行时构建和操作它们的API。

希望这可以帮助您入门。

关于grails - 如何动态设置数据源属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28721360/

相关文章:

grails - Grails 2.5.0-set上的metaParams?

intellij-idea - 如何解决问题 : "The specified database user/password combination is rejected" using Intellij IDEA?

delphi - 如何在 TcxExtLookupComboBox 中使用 TcxCustomDataSource?

c# - 使用数据源和 Entity Framework 填充以编程方式声明的 datagridview

datasource - maven tomcat7 :run configure datasource

java - 如何在 spring 中覆盖 JndiObjectFactoryBean 并在 java 中设置解密密码

Grails 和 Cloudbees

java - 使用Groovy/Grails工具套件无法在grails项目中打开文件

JSON 到 Groovy 与 JsonSlurper 和未知 "string"

grails - 当hasMany没有任何元素时,选择Grails条件