私はhybriseコマースソフトウェアに非常に慣れておらず、提供されているwikiドキュメントを利用して学習しようとしています。 「テナント」スコープの使用は非常に頻繁に見られます。 'singleton'、 'prototype'などの他のスコープについては知っていますが、テナントスコープについてはあまり明確ではありません。誰かがこの範囲についてよく理解している場合は感謝し、簡単な言葉で説明してください。ありがとう。
コア拡張機能のcore-spring.xmlファイルは、tenantという名前の特別なスコープをグローバルApplicationContextに追加します。テナントスコープは、Beanがハイブリッドの個々のテナントごとに個別にインスタンス化されることを確認しますが、シングルトンはすべてのテナントが使用するインスタンスを1つだけ作成します。
実装内でサービスやDAOなどのテナント固有のクラスを参照する場合は、デフォルトのSpringシングルトンスコープの代わりにテナントスコープを使用する必要があります。疑わしい場合は、シングルトンの代わりにテナントを使用してください。
<bean id="myExtension.myBean" class="de.hybris.platform.myExtension.myClass" scope="tenant" />
hybris Commerce Suiteのバージョン5.0以降、テナントスコープは使用されなくなりました。
詳細については this を確認してください...
Hybrisにはデフォルトで2つのテナントがあります-マスターテナントとjunitテナント。必要に応じて、さらにテナントを作成できます。各テナントには独自のデータセットがあります...たとえばアイテムタイプ。
Beanがテナントスコープで定義されている場合、そのBeanはテナントごとに1回インスタンス化されることを意味します。また、同じBeanオブジェクトがテナント全体で使用されます。
hybrisは、複数の個別のデータセットが1つのhybrisインストールで維持されるマルチテナントモードで実行できます。
Beanがテナントスコープで定義されている場合、Beanはテナントごとに個別にインスタンス化されるだけです。一方、シングルトンは、すべてのテナントが使用するインスタンスを1つだけ作成します。