gpt4 book ai didi

java - 从 Spring 框架迁移到 Play 框架 (Scala)

转载 作者:搜寻专家 更新时间:2023-10-31 19:28:36 25 4
gpt4 key购买 nike

我一直在我的项目中使用 Spring 框架 (3.x),使用以下功能:

  • 安全:Spring 安全 API
  • 持久性:Hibernate(自动生成/更新数据库方案)
  • 全文搜索:Hibernate Search(基于 Apache Lucene)
  • IOC:Spring 依赖注入(inject)

我想将我以前的一些项目迁移到 Play 框架。最近我开始学习 Scala 语言和 Play 框架 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 而不是将它嵌入到应用程序本身,无论使用什么语言或框架。

国际奥委会

Latest Play 几乎支持 Guice,Scala 本身试图强制实现蛋糕模式。 Spring 应该可以通过之前链接的容器集成。

我希望其他人实际上有很好的见解来对此发表评论,因为 Play 的构建方式,尤其是在 Java 方面似乎非常反对 IOC。

关于java - 从 Spring 框架迁移到 Play 框架 (Scala),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19598258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com