【问题标题】:Spring Roo Multi Project WorkaroundSpring Roo 多项目解决方法
【发布时间】:2011-09-20 20:11:09
【问题描述】:

我知道 Spring Roo 还不支持多项目,但我需要两个站点在相同的模型/控制器(大约 50 个模型)和相同的数据库上运行,而无需更新两个应用程序上的模型。

我在想我可以在主项目中生成模型和控制器,并让子项目使用符号链接的模型和控制器。这还是感觉我在复制很多代码,有没有更好的方法来达到同样的效果?

【问题讨论】:

    标签: spring-roo


    【解决方案1】:

    如果您正在考虑为使用 Spring Roo 构建的同一产品的不同客户端定制 UI,您可以使用版本控制系统轻松实现上述目标。

    只需为两个分支分叉您的主源,并在模块发生更改时不断更新主干并将它们拉到分支,同时在分支中维护单独的 UI 自定义。

    此外,您可以等待 Spring Roo 1.2 版本,它已经承诺为 Spring Roo 项目提供多模块 maven 项目支持 (ROO-120)。

    与 Roo 一起干杯,一切顺利!

    【讨论】:

    • 版本控制是一个非常优雅的解决方案,谢谢!希望我有时间等待 1.2 RELEASE。
    【解决方案2】:

    作为一种解决方法,我尝试为不同的业务逻辑创建单独的 Roo Web 项目。然后我修改 pom.xml 中的打包,从 WAR 到 JAR,以便在没有 web 资源的情况下打包它们(注意:由于控制器是 POJO 类,它们包含在 JAR 中)

    我称它们为辅助模块。

    最后,我创建了一个 Roo Web 项目,将帮助模块作为 maven 依赖项导入。

    我称之为主模块。

    第一个问题是在主模块的 JPA 扫描中包含辅助模块的类。我需要这样做,因为模块之间的顶级包不同。

    为了实现这一点,您需要在主模块中编辑 persistence.xml 并为每个外部 JPA 实体添加条目(是的,如果需要,添加 50 个)

    更多解释请参见:http://www.manning-sandbox.com/thread.jspa?threadID=46259&tstart=0

    第二个问题是使用 JAR 中包含的控制器。这里的问题是 ApplicationConversionServiceFactoryBean,您需要在主模块的辅助模块中复制每个 ApplicationConversionServiceFactoryBean 的代码,因为 webmvc-config.xml 只创建其中一个。

    仅当您拥有具有复合键的实体时才会出现问题,因为它们在控制器中被 @Autowired 以便进行键的对话以将它们用作 REST 参数。

    更多详情请参阅http://www.manning-sandbox.com/thread.jspa?threadID=46337&tstart=0

    最后一个问题可能是为交换 AJAX 调用中的 REST 参数而创建的 JSON 特性,如上所述,如果您有复合键。此外,如果您尝试使用 JQuery 而不是 Dojo。

    我还没有解决方案,但是项目快结束了,所以我相信会有一些帮助。

    顺便说一下,我接受建议。

    【讨论】:

    • 也是一个很好的解决方案,如果我有时间正确地做,这可能是更好的解决方案。
    【解决方案3】:

    可能还有另一种方法来完成它,使用 Spring 解析器...如果有兴趣,您可以查看我在 http://pragmatikroo.blogspot.com/2011/04/spring-roodynamic-clients-multiple.html 上关于此事的文章。

    这种方法在具有传统 UI 客户端且需要同时支持移动客户端的网站上特别有用。

    希望对你有帮助。

    B.罗加兹 杰德

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 2012-01-08
      • 1970-01-01
      • 2013-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多