5

私は自分のプロジェクトで常に Spring フレームワーク (3.x) を使用しており、次のような機能を使用しています。

  • セキュリティ: Spring セキュリティ API
  • persistence: Hibernate (自動生成/更新データベース スキーム)
  • 全文検索: Hibernate Search (Apache Lucene に基づく)
  • IOC: Spring 依存性注入

以前のプロジェクトのいくつかを Play フレームワークに移行したいと考えています。最近、Scala 言語と Play フレームワーク 2.x の勉強を始めました。そして、以前と同じ機能を使いたいです。データベースには Slick ライブラリを使用します。

セキュリティと全文検索に何を使用すればよいか教えていただけますか?

4

2 に答える 2

8

新しいテクノロジーへの移行は常に険しい道のりです。そのため、最初に何かを自分で実装する必要があるかもしれないとは思わないでください。これについては、後で具体例を示して説明します。

まず、Scalaは、統合可能ではなく、スケーラブルを意味します。つまり、何かを Scala でコーディングすることを選択した場合、Java での自動化を目的としたフレームワークはほとんど Scala 側では機能しないことに注意してください。ORM はこの非常に良い例です。Scala メソッドは常に正確に Java メソッドであるとは限らないため、メタデータが不適切な場所に配置され、データが破損することになります。したがって、一般的な注意点は、Scala を使用する場合、ヘルパーが言語セマンティクスから完全に分離されていない限り、ヘルパーの Java エコシステムを実際に調べることはできないということです。


安全

Spring Security を最大限に活用したと仮定すると、ロールベースのアクセス制御を使用していました。Java を使用する場合は、Spring Security を実際に使用できるはずです。これは、移行を確実に支援し、より多くのコードを記述する時間を節約します。本当に必要なのは Play アプリの Spring コンテナーだけであり、ありがたいことに他の人が既にそれを解決しています: Play フレームワーク 2.0 と Spring フレームワークの統合

Scala 側では、RBAC は RBAC と ACL の間のセマンティクスに関する文明化された戦いであり、明確な勝者はないようです。誰も実際に作業していないように見えるため、これは問題です。つまり、自分で作成する必要があるかもしれません。

持続性

Java では、Web コンテナーに関連付けられていないため、Hibernate/任意の JPA ソリューションを使用できるはずです。Play にも EBeans が付属していますが、私が観察したところ、最も風変わりなユースケースには使用できません。ただし、それらをヒットすることは決してないかもしれませんが、すでにそこにあるので試してみる価値があります.

Scala 側では、すでにお考えのとおり、Slick で問題ありません。

全文検索

検索は非常に複雑なものなので、使用されている言語やフレームワークに関係なく、アプリ自体に埋め込むのではなく、実際にスタンドアロンの Solr/ElasticSearch をセットアップしてその API に統合します。

IOC

最新の Play はほぼ Guice をサポートしており、Scala 自体がケーキ パターンを強制しようとしています。Spring は、以前にリンクされたコンテナー統合で可能になるはずです。

Play の構築方法、特に Java 側の構築方法は IOC に対して非常に敵対的であるように見えるため、他の誰かが実際にこれについてコメントする良い洞察を持っていることを願っています。

于 2013-10-26T10:30:36.080 に答える
2

セキュリティについてはhttp://www.playframework.com/documentation/2.0.1/ScalaSecurityを、サンプルについては zentask を実際に試すことができます。

さらにテキスト検索の場合-scalaでリアクティブドライバーを使用できます。

于 2013-10-26T10:12:06.110 に答える