我正在分析使用Spring框架和Play 2.1来支持DI。除了DI,我还可以使用Spring的AOP拦截器,事务,DAO和REST支持Play 2.1吗?我不确定这是否是正确的方法。如果没有,使用Play处理这些事情的最佳方法是什么? Play中是否有对这些领域的内置支持,还是需要使用AspectJ,Guice,Jersey等独立的库?
答案 0 :(得分:3)
是的,您可以将Spring与Play Framework集成。几周前我在一个项目中做到了。如Pere Villega链接的教程所示,通过扩展GlobalSettings
可以很容易地实现这一点。这种方式也适用于其他DI解决方案,如Guice(as shown here)。据我所知,目前在Play 2.x中没有DI的原生解决方案。
当然,您也可以使用Spring提供的其他功能,例如DAO支持或事务管理(但这可能需要进一步配置)。我们甚至使用了Spring Data的MongoDB支持。
只是一些个人注意事项:我非常喜欢Play Framework来构建典型的Java MVC webapps,但我发现它只适用于构建API。因此,如果您还使用Play编写Web客户端,则提供的路由和模板功能非常出色,可为您提供一个良好的开端。对于纯REST服务,我最终使用JAX-RS(在Jersey上),一些基本的Spring组件和Jetty。然后,我们使用Backbone,Node和Airbnb的Rendr完全用JavaScript编写了Web客户端。
答案 1 :(得分:1)
Play有自己管理REST,事务(取决于所使用的JPA库)和拦截器的方式。
您可以将它与Spring集成,请参阅this demo in github,但我首先想一想您是否真的需要它。