【发布时间】:2010-12-19 10:42:42
【问题描述】:
我目前正在为现有的基于 Spring 的应用程序构建 CRUD 工具。 该应用程序作为 JAR 库包含在 Grails 应用程序中,看起来运行良好。
为了利用库自己的spring上下文,我曾经通过以下方式加载它:
def ctx = new ClassPathXmlApplicationContext( 'classpath:/applicationContextName.xml')
为我服务。不幸的是,上下文构建了自己的数据源(库的默认值),这并不好,因为我需要使用 Grails 中定义的数据源。
因此,我的解决方案是通过将导入添加到 grails-app\conf\spring\resources.xml 文件中,将库的 spring 配置与 Grails 上下文一起包含。
这似乎可行(因为所有 bean 都加载到相同的上下文中,我现在可以使用 def variableName 将 bean 直接自动装配到我的服务类中。
不幸的是,库的 spring 配置中定义的数据源正在重载我的 Grails DataSource.groovy 文件中定义的数据源!
有什么方法可以告诉 Grails 先加载库的 spring 配置,然后它会被 Grails 配置的其余部分覆盖(从而使用 Grails 的 DataSource)?
感谢您的帮助,
詹姆斯
...
作为临时措施,我已经删除了依赖项的 spring 配置文件中的 dataSource 条目,并且它的 bean 已经注入了由 Grails 配置创建的 dataSource ——但这并不理想,因为我必须创建一个依赖 jar 的“特殊”构建。
【问题讨论】:
标签: java spring configuration grails dependency-injection