Grails 应用程序使用来自 spring-mvc 后端的服务



我们有一个相当复杂的Web应用程序,使用spring-mvc和maven构建系统编写,并希望在前端利用Grails的所有功能。因此,Grails应用程序本质上将调用spring-mvc应用程序的服务层来访问其业务逻辑和数据。

我需要一些关于我的架构方法的指导,以便在高层次上进行这种集成。根据我的理解,我需要;- 将我的 spring-mvc 应用程序添加为我的 BuildConfig.groovy 中的编译依赖项。- 在我的 conf/spring/resources.groovy 中将服务层对象公开为服务豆,并将它们注入我的控制器

问题:我的 spring-mvc 应用程序有很多自己的依赖项(显然必须具有),这会导致很多依赖项错误。我应该在我的配置中设置"transitive=false"并在我的Grails应用程序中调用所有这些吗?应如何配置数据源?我想我必须通过从我的 Grails 应用程序上下文调用我的 spring-mvc 应用程序来集成它的应用程序上下文,并希望它都能很好地引导?

因此,Grails应用程序本质上将调用spring-mvc应用程序的服务层来访问其业务逻辑和数据。

你能更具体地说明你想从Grails使用Spring MVC的哪些组件吗?它只是服务和数据源吗?

我需要将我的 spring-mvc 应用程序添加为我的 BuildConfig.groovy 中的编译依赖项

是的

在我的conf/spring/resources.groovy中将服务层对象公开为服务 Bean

虽然你可以通过在 resources.groovy 中单独定义 Spring bean 来让 Grails 应用程序知道它们,但这是不必要的,因为你已经在 Spring MVC 项目的 Spring XML 文件中(大概)定义了它们。

相反,您可以使用 BeanBuilder 的 importBeans 方法将此 XML 文件中定义的 Spring bean 导入到 Grails 应用程序中。一旦你添加了Spring MVC项目作为Grails应用程序的依赖项,Spring XML文件应该在你的类路径上,所以你需要做的就是将以下内容添加到resources.groovy

beans = {
    importBeans('classpath:/path/to/file/applicationContext-services.xml')
}

应如何配置数据源?

一个名为 dataSource 的 Spring Bean 定义了 Grails 应用程序使用的数据源。在标准的 Grails 应用程序中,此 Bean 是根据 DataSource.groovy 中的配置创建的。如果您的Spring MVC应用程序定义了具有此名称的Bean,则应在进行上述更改后使用它。为了确保Grails使用的是Spring MVC应用程序中的数据源,而不是DataSource.groovy中的任何数据源,我想您可以删除后者的内容。

最新更新