我有一个带有支付模块的 Java/Spring/Hibernate 应用程序。支付模块有一些域类用于支付订阅和交易等。相应的 hibernate 映射文件在那里。该模块使用 applicationContext.xml 进行一些它需要的配置。
此外,该模块还有一个 PaymentService,它使用 paymentDAO 来完成所有与数据库相关的工作。
现在,我想在我的其他应用程序(Grails 应用程序)中按原样使用这个模块(无需任何或最少的重写)。我想将支付模块作为 jar 引入或将源文件复制到 Grails 中的 src/java 文件夹。
有了这个背景,我有以下疑问:
- 模块中用于 Spring 配置的现有 applicationContext.xml 是否会像在 Grails 中一样工作?它是否与 Grails 的 Spring 配置的其余部分合并?
- 我应该把 applicationContext.xml 放在哪里?类路径? src/java 应该工作?
- 我可以将 applicationContext.xml 捆绑在 Jar 中吗(如果我使用 jar 选项),如果需要更改任何内容,可以在 Grails 中覆盖吗?在那种情况下存在多个 bean 定义问题?
- PaymentService 被认为是常规服务?它会自动注入(inject) Controller 和/或其他服务吗?
- PaymentDAO 会使用 Grails 的数据源配置吗?
- 该模块的 hbm 文件放在哪里?
- 我可以将 hbm 文件捆绑在 Jar 中吗(如果我使用 jar 选项),如果需要更改任何内容,可以在 Grails 中覆盖吗?选择了哪些hbms?或者,会有问题吗?
问题太多了! :)
这一切的顾虑,其实都是在尝试之前。我将在接下来的几天内尝试这个(目前很忙)。感谢您的帮助。
谢谢。
最佳答案
您需要考虑几件事:
- 您需要打包 applicationContext.xml 以避免命名空间冲突 - 也就是说,您可能会将其放在 src/resources/com/company/module/applicationContext.xml 中
- 此应用程序上下文确实需要与 grails 应用程序兼容 - 它需要访问您的应用程序使用的数据库连接 - 确保它没有定义自己的 - 请参阅文档的第 14 节 - http://grails.org/doc/latest/guide/14.%20Grails%20and%20Spring.html
- 文档第 15 节 - http://grails.org/doc/latest/guide/15.%20Grails%20and%20Hibernate.html描述使用 hibernate 映射文件
- 15.4 指出一些好文章- http://jasonrudolph.com/blog/2006/06/20/hoisting-grails-to-your-legacy-db/和 http://www.infoq.com/articles/grails-ejb-tutorial
可能不是您要找的确切答案,但我希望这对您有所帮助。
关于java - 在 Grails 中使用 Java 类(具有 Spring/Hibernate 依赖项的整个模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4656794/