spring roo_玩Spring Roo和Vaadin

spring roo

一年前,在同事的温和压力下,我尝试了Spring Roo。 我对体验感到mixed贬不一:虽然想提高生产率当然是个好主意,但我担心Roo的侵扰性。 我把它留在那里,然后关闭了与之相关的记忆部分。

现在,一年后,我了解到我最喜欢的Web框架Vaadin将目光投向Roo插件 。 这足以让我重新站起来并重试。 本文试图尽可能诚实地描述与Roo和Vaadin插件相关的这种经验的优缺点。

纯鲁

首先,我下载了包含Roo 1.1.1的免费STS 2.5并进行了安装。 目前没有问题。 然后,我在STS中创建一个新的Spring Roo项目。 不幸的是,STS不会创建默认的Maven目录(src / main-test / java-resources):错误出现在“问题”选项卡中。 为了解决该项目,我将project命令键入STS内Roo的shell中。 Roo抱怨我应该给它我的顶级软件包,尽管我已经使用向导完成了。 好的,我是个好人,请按要求进行:

project --topLevelPackage ch.frankel.blog.roo.vaadin

这次,Roo成功创建了上述目录以及Spring配置文件和log4j属性文件。

下一步是创建我的持久层。 CTRL + SPACE的使用确实不错,并且可以帮助您使用命令参数。 结合提示,让Roo轻松自在非常容易。

persistence setup --provider HIBERNATE --database DERBY

Roo很好地更新了我的Maven POM,并让其下载了最新版本的权限依赖项(JPA,Hibernate,Derby等)。 如果需要特定版本,我可以随时更改版本。 它甚至添加了JBoss Maven回购,因此我可以下载Hibernate。 我只需要更新数据库属性,驱动程序和URL。 呃:打开文件时,我看到Roo奇怪地用反斜杠转义了冒号字符。 我只是将示例转义的URL替换为未转义的真实URL。

同时,我在日志中发现错误:“ org.aspectj:aspectjtools:jar:1.6.11.M1的POM丢失,没有可用的依赖项信息”。 Roo使用1.6.11.M1版本更新了我的POM。 如果我检查repo1,则最新版本为1.6.10。 将1.6.11.M1替换为1.6.10可消除该错误。

现在是创建我的第一个实体的好时机:

entity --class ~.entity.Teacher --testAutomatically

STS现在抱怨目标目录不存在,就像之前抱怨源目录一样。 为了解决这个问题,我像以前一样做,我发布了一条指令。 在这种情况下,我命令Roo使用perform test命令启动测试。 反过来,Roo在后台启动mvn test ,而Maven确实创建了目标目录。

没有字段的实体是没有用的。 让我们为老师添加一个名字和名字。

field string --fieldName firstName

field string --fieldName name

附上课程会很酷。

entity --class ~.entity.Course --testAutomatically

field string --fieldName name

focus --class Teacher

field set --fieldName courses --type Course

请注意,由于Roo是以上下文方式工作的,因此我必须使用focus命令,以便我不会在Course类中而是在Teacher类中创建课程Set

Vaadin插件

到现在为止,关于Vaadin的信息还没有。 来了:按照Vaadin Wiki的说明,我下载了最新的Vaadin Roo插件快照,并放入了Roo本地OSGI存储库中。 为了让Roo看到新的捆绑软件,我必须重新启动它,但我不知道该如何在STS内部进行。 而是,我重新启动STS。

有魔术命令:

vaadin setup --applicationPackage ~.web --useJpaContainer false`

该命令:

  • 添加Vaadin依赖性
  • 添加包含图像的Web目录
  • 将POM更新为战争包装

但是,当我尝试将新的Web项目添加到Tomcat时,STS抱怨它找不到候选项目。 问题在于Eclipse没有与Maven同步,因此,我的项目缺少Web界面。 解决方案:右键单击我的项目,转到Maven菜单,然后单击“更新项目配置”子菜单。 完成后,我可以像其他任何Web项目一样将项目添加到Tomcat(因为无论如何)。

启动Tomcat并转到http:// localhost:8080 / vaadin ,我可以看到Vaadin处理了我的请求。 我只是想念我的实体的视图,可以通过以下操作完成:

vaadin generate all --package ~.web.ui --visuallyComposable true

结论

好吧,那是很快的,即使不是完美的。 我确实错过了Roo的一些功能:

至于Vaadin插件,它在更改POM之后缺少更新Eclipse文件的功能。 不熟悉m2eclipse内部工作原理的人可能会因为这种行为而浪费一些时间。

另一方面,我在短短几分钟内就有了一个简单的Web应用程序,现在我可以更新选择的方式。 CTRL+SPACEhint是Roo杀手级功能。 而且,如显示的Vaadin附加组件一样,您可以添加自己的插件缺少的任何功能(或使用已经可用的插件)。 不过,对我而言真正重要的是,如果没有它,我什至不会考虑使用Roo,因为它可以通过3个简单的步骤就可以完全移除 。 因此,您可以利用Roo的生产力提高功能,而不必告诉任何人,而只是在将项目传递给维护团队之前将Roo删除。

感谢Joonas Lehtinen和Henri Sara在Roo Vaadin插件方面所做的工作,并提前将解释Vaadin部分的Wiki草稿发送给我。

下面是来源本文中的Maven / STS格式。

翻译自: https://blog.frankel.ch/playing-with-spring-roo-and-vaadin/

spring roo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值