我知道Spring Roo还不支持多项目,但是我需要两个站点在相同的模型/控制器(大约50个模型)和同一个数据库上运行,而无需在两个应用程序上更新模型。
我在想我可以在主项目中生成模型和控制器,并让子项目使用符号链接的模型和控制器。这仍然感觉我复制了很多代码,是否有更好的方法来实现相同的结果?
答案 0 :(得分:1)
作为一种解决方法,我正在尝试为不同的业务逻辑创建单独的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,你需要在主模块的helper模块中复制每个ApplicationConversionServiceFactoryBean的代码,因为webmvc-config.xml只创建其中一个。
只有当您拥有具有复合键的实体时才会出现问题,因为它们在控制器中是@Autowired,以便进行密钥对话以将它们用作REST参数。
有关详细信息,请参阅http://www.manning-sandbox.com/thread.jspa?threadID=46337&tstart=0。
最后一个问题可能是为AJAX调用中的REST参数交换而创建的JSON方面,如上所述,如果你有复合键。此外,如果您尝试使用JQuery而不是Dojo。
我还没有解决方案,但项目结束时已接近,所以我确信会有所帮助。
顺便说一句,我接受建议。
答案 1 :(得分:1)
如果您正在考虑为使用Spring Roo构建的同一产品为不同客户端进行UI自定义,您可以使用版本控制系统简单地实现上述目标。
只需将主要源分为两个分支,并在模块发生更改时继续更新主干并将其拉到分支,同时在分支中维护各个UI自定义。
此外,您可以等待已经承诺为Spring Roo项目提供多模块maven项目支持(ROO-120)的Spring Roo 1.2版本。
与Roo一起欢呼!
答案 2 :(得分:0)
使用Spring解析器可能还有另一种方法可以实现它...如果您有兴趣,可以在http://pragmatikroo.blogspot.com/2011/04/spring-roodynamic-clients-multiple.html查看我关于此事的文章。
此方法对于需要同时支持移动客户端的传统UI客户端的网站特别有用。
我希望它有所帮助。
B中。 Roogards JD