3

Liferay API を使用して組織を作成するのに適したユーティリティは次のうちどれですか。

i) OrganizationUtil
ii) OrganizationServiceUtil
iii)OrganizationLocalServiceUtil

基本的に、これら3つの違いを知りたいです。

4

1 に答える 1

4

i) OrganizationUtil:com.liferay.portal.service.persistence.OrganizationUtil

永続層のクラスはデータベースと直接対話するため、サービス層から使用するのに適しています。また、トランザクションを気にする場合にも使用できます。

ドキュメントからの単語は次のとおりです。

組織サービスの永続化ユーティリティ。このユーティリティは OrganizationPersistenceImpl をラップし、CRUD 操作のためにデータベースへの直接アクセスを提供します。このユーティリティは、トランザクション内で動作する必要があるため、サービス層でのみ使用する必要があります。JSP、コントローラ、モデル、またはその他のフロントエンド クラスでこのユーティリティにアクセスしないでください。


ii) OrganizationServiceUtil:com.liferay.portal.service.OrganizationServiceUtil

このように、任意のレイヤーから呼び出すことができます。このクラスは、(Liferay で指定されたアクセス許可に基づいて) アクセス許可のチェックも行います。これは、場合によっては役立つ場合があります。これは、Web サービスを介して使用することもできます。

liferay のドキュメントに記載されている内容を見てみましょう。

組織のリモート サービスのユーティリティ。このユーティリティは、com.liferay.portal.service.impl.OrganizationServiceImpl をラップし、リモート サーバーで実行されるアプリケーション層コードのサービス操作の主要なアクセス ポイントです。

これは遠隔サービスです。このサービスにはリモートからアクセスできるため、このサービスのメソッドには、伝播された JAAS 資格情報に基づくセキュリティ チェックが必要です。


iii) OrganizationLocalServiceUtil:com.liferay.portal.service.OrganizationLocalServiceUtil

これは、権限チェックが不要な場合にも使用できます。はOrganizationServiceUtil最終的にlocalServiceレイヤーを呼び出します。

Liferay のドキュメント:

組織のローカル サービスのユーティリティ。このユーティリティは、com.liferay.portal.service.impl.OrganizationLocalServiceImpl をラップし、ローカル サーバーで実行されるアプリケーション層コードのサービス操作の主要なアクセス ポイントです。

これはローカル サービスです。このサービスには同じ VM 内からしかアクセスできないため、このサービスのメソッドには、伝播された JAAS 資格情報に基づくセキュリティ チェックはありません。

結論

  1. トランザクションに関心がある場合、つまりトランザクション内の複数のテーブルを更新する必要がある場合は、OrganizationUtil を使用してからこれを使用します。
  2. Liferay の外で Organization を作成する場合、または権限チェックが必要で、トランザクション (つまり、カスタム コードでのトランザクション) を気にしない場合は、OrganizationServiceUtil を使用します。
  3. Web サービスを使用しておらず、トランザクションやアクセス許可を気にしない場合は、OrganizationLocalServiceUtil を使用してください。

これがあなたに公正な考えを与えることを願っています。まだ不明な場合はお知らせください。

于 2012-12-13T14:47:47.613 に答える