我一直在我的项目中使用Spring框架(3.x),使用以下功能:
>安全性:Spring安全性API
>持久性:Hibernate(自动生成/更新数据库方案)
>全文搜索:Hibernate Search(基于Apache Lucene)
> IOC:Spring依赖注入
我想将以前的一些项目迁移到Play框架.
最近我开始学习Scala语言以及Play framework 2.x.我想使用与以前相同的功能.
对于数据库,我将使用Slick库.
你能告诉我什么用于安全和全文搜索?
首先,Scala意味着可扩展,不可集成.也就是说,如果您选择在Scala中编写任何代码,请记住,用于Java自动化的框架通常不适用于Scala端. ORM是一个非常好的例子,因为Scala方法并不总是精确的Java方法,因此元数据最终会出现在不正确的位置,并且最终会导致数据损坏.所以一般的指针是,如果你使用Scala,除非助手完全与语言语义隔离,否则你真的无法查看Java生态系统中的助手.
安全
假设您充分利用了Spring Security,那么您使用的是role-based access control.如果您使用Java,您实际上应该能够使用Spring Security,这肯定可以帮助您进行迁移并节省编写更多代码的时间.你真正需要的只是Play应用程序中的Spring容器,谢天谢地,其他人已经解决了这个问题:Integrating Play framework 2.0 and Spring framework
在Scala方面,RBAC似乎是关于RBAC和ACL之间语义的文明斗争,没有明显的赢家.这是有问题的,因为似乎没有人真正在工作,这意味着你可能不得不自己动手.
坚持
使用Java,您应该能够使用Hibernate /任何JPA解决方案,因为它不依赖于Web容器. Play也附带了EBeans,但据我所知,它不能用于最奇特的用例.可能你永远不会打那些,所以它值得尝试,因为它已经存在.
在Scala方面,正如你已经想到的那样,Slick应该没问题.
全文检索
搜索是一个非常复杂的事情所以我实际上设置了独立的Solr / ElasticSearch并集成到它的API,而不是将它嵌入到应用程序本身,无论使用何种语言或框架.
国际奥林匹克委员会
最新游戏只是支持Guice,Scala本身试图强制执行蛋糕模式.通过先前链接的容器集成,Spring应该是可能的.
我希望其他人真的有很好的见解来评论这个,因为Play的构建方式,特别是在Java方面似乎非常IOC敌对.