の差@Component、@Repository、@Service
公式サイトの引用
公式文書は、説明に春を引用しました:
以前のバージョンSpring2.0では、@Repository
ノートは、任意のクラスでマークすることができるクラスは、データベース(すなわち、DAOオブジェクト)に関連付けられた動作を実行するために使用されていることを示し、そして自動操作によって生成された例外処理データベースをサポート
Spring2.5のバージョンではより多くの春の注釈のように導入されています@Component
、@Service
、@Controller
。@Component
単一の一般的な実施形態BeanコンポーネントSpringコンテナ管理。そして@Repository
、 @Service
、 @Controller
異なる使用シナリオの特定の機能のための注釈されているコンポーネントが取得されます。
あなたのクラスのいずれかがされたときにそのため、@Component
注釈を付け、それは同じを使用することができることを意味し@Repository
、 @Service
、 @Controller
それを交換するが、これらのノートは、より多くの機能が、異なる機能を持つことになります。
あなたがわからない場合は最後に、ビジネス層は、プロジェクトで使用する@Service
か、@Component
ノート。だから、@Service
それがより良い選択です。
これは、上述された@Repository
異常フラグのサポートが自動的に永続化層(翻訳者注にデータベース操作を処理するために生成することができる限り使用されてきた:生成データベースのJavaのネイティブの動作はわずか数異常を定義するので、しかし多くの異常なデータベースは非常にエラーのトラブルシューティングデータベース操作のために、ある理由は、いくつかの影響を引き起こし、永続層スプリングネイティブ例外を拡大しながら、より多くの例外が大きく異なる原因に記載されていると、注釈付きの@Repository
例外がスローされた場合、クラスのデータベース操作で、)例外に私たちの調査を異常容易に翻訳スロー春独自のデータベースを回し、それを処理することができるようになります。
コメント | 意味 |
---|---|
@成分 | 最も一般的な成分は、容器内に注入することができるスプリングを管理 |
@倉庫 | 永続層に作用します |
@サービス | ビジネスロジック層に作用します |
@コントローラ | プレゼンテーション層に作用する(春-MVCの注釈) |
その他のオンライン情報
これらのノートは、ほぼ同じことを言うことができる:変更されたクラスは、これらのノートがスキャンされ、SpringのBeanコンテナに春に注入されるため。
ここでは、2つの音符が他の音符を交換することはできませんがあります。
@Controller
注釈付きの豆は、スプリングMVCフレームワークを使用します。 @Repository
豆の永続化層の操作(データベース)として使用され
ますが、定義された自己組織化アノテーションを使用したい場合は、限り、あなたは新しいコメント@Componentを追加するように定義することができます。
-
-
-
公共
このように、すべての@ScheduleJob
注釈付きのクラスは春を管理するための容器に注入することができます。、その後、私たちは実行したい作業を実行します。私たちは、このカスタム注釈(あなたは反射法を使用することができます翻訳者注)に対処するためのいくつかの新しいコードを記述することで行う必要があります。
@Component
これは、とされる<bean>
同じ、あなたはSpringコンテナ管理をホストすることができます。
@Service
、 @Controller
、 @Repository
= { @Component
+}いくつかの特定の機能。これは、機能のいくつかのこれらのノートが同じであることを意味します。
もちろん、次の三つの注釈は、当社のアプリケーションを層別化するために使用されています。
@Controller
要求のアノテーションクラスフロントエンド処理、転送、リダイレクト。サービス層は、メソッド呼び出し含む @Service
ビジネスロジック処理注釈付き @Repository
DAO(データアクセスオブジェクト、データアクセスオブジェクト)としてアノテーションターゲットクラスを、これらのクラスは、データベース上で直接動作することができ
、コード間の疎結合を達成するために、積層次いで、これらの操作と架空の表情、場合にのみ、コードもはっきりと明るく、プロジェクトを管理しやすいの間で呼び出す@Controller
ようにコードやいかに難しい展開するには、一つの場所にコメント、その後、すべての要求が転送され、業務処理、データベース操作コードブレンドメンテナンス。
概要
@Component
、 @Service
、 @Controller
、 @Repository
スプリング注釈であり、注釈はスプリングフレームワークスプリングスキャンおよび管理するために容器に注入することができる @Component
一般的な意見であり、コメントは、コメント他の三つの拡張であり、特定の機能有し @Repository
有する永続層に注釈をデータベース操作は、異常な機能の永続層ばね翻訳例外をスロー。 @Controller
層は、機能をリダイレクト、要求を転送したスプリングMVC注釈です。 @Service
そのビジネスロジック層、ビジネスロジック層内のコメントが、マークのこの種のノート。
後で使用するためにこれらのノートは成層で、我々は、コードをデカップリングするためのデータベースの処理動作を分離するだけでなく、将来のプロジェクトの維持・発展を促進するための処理ロジック債務処理を要求することができるようになります。