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

时间:2013-09-13 13:30:03

标签: java spring grails spring-mvc

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

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

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

1 个答案:

答案 0 :(得分:3)

  

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

您是否可以更加具体地了解您希望从Grails使用的Spring MVC的哪些组件,它只是服务和数据源?

  

我需要在BuildConfig.groovy

中添加我的spring-mvc应用程序作为编译依赖项

  

在我的conf/spring/resources.groovy

中将服务层对象公开为服务bean

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

相反,您可以使用BeanBuilder的importBeans method将此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中的数据源,我想你可以删除后者的内容。