【问题标题】:Integrate Spring-based Java application and Clojure library集成基于 Spring 的 Java 应用程序和 Clojure 库
【发布时间】:2015-02-09 14:42:08
【问题描述】:

我们有一个在 Tomcat 8 中运行的基于 Spring 4.0 的 Web 应用程序(或者我们有一个 Undertow 的启动脚本)。 Spring MVC 正在处理请求。我正在寻找一种将一些请求处理代码推迟到 Clojure 库的方法,而对遗留 Java 代码的更改最少。

例如,URL 以 .java 结尾的请求将由旧版 Java 处理,而以 .clj 结尾的请求将由 Clojure 处理。目前,我看到了三个选项:

  1. 在 Java 项目的依赖项中包含 Clojure 库 jar,并使用 clojure.java.api 从 Java 调用 Clojure 代码。
  2. 使用某种 RPC/RMI 或消息队列,例如Redis 和 Carmine 的消息队列处理能力。这样,Clojure 将存在于单独的 JVM 中。
  3. 使用某种反向代理来执行 URL 路由。

以上方法真的可行吗?你还有什么建议?

谢谢!

【问题讨论】:

    标签: spring clojure redis rmi carmine


    【解决方案1】:

    我在 DropWizard 应用程序而不是 Spring 应用程序上做了类似的事情。我采用了方法 #1。

    我按照这里的例子 - https://stackoverflow.com/a/2187427/827617 创建库。这样您就不需要使用clojure.java.api,您的Clojure 库会编译成一个jar,您可以将其包含在您的Spring 应用程序中并直接从Java 调用(您公开的函数是类上的静态方法)。

    【讨论】:

    • 谢谢,这也许是最方便的。
    猜你喜欢
    • 2016-11-19
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 2011-02-28
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多