我使用Spring将使用OSGi开发的简单CRUD应用程序迁移到Grails。我将所有REST资源转换为控制器和HTML页面到GSP视图,保留其余的Java代码。
我有一个DBService
服务,可以帮助连接到数据库并在其上运行查询,还有一个ProcessorService
,它使用DBService
来执行业务操作。
我为这些服务创建了bean,如下所示:
beans = {
dbServiceBean(DBService, "test_db")
processorServiceBean(ProcessorService,ref("dbServiceBean"))
}
使用上面的配置一切正常。
现在,我希望应用程序能够处理多个DB(多租户)。但是,我不会事先知道数据库的名称,因此我无法预定义dbServiceBean
列表。
是否可以使用动态获取的值重建/重新加载bean,并在应用程序运行时重新加载依赖bean?
答案 0 :(得分:0)
Grails已经可以选择使用multiple datasources。
您可以更改DBService
以从配置的数据源获取连接。如果您只是将其更改为Groovy类并将其放在grails-app/service
中,您将get transactions and dependency injection by attribute name for free。