差[予約] @Component、@Repositoryの@Service

の差@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を追加するように定義することができます。

  1.  
    @成分
  2.  
    @Scope("プロトタイプ")
  3.  
    公共@interface ScheduleJob {...}
  •  

このように、すべての@ScheduleJob注釈付きのクラスは春を管理するための容器に注入することができます。、その後、私たちは実行したい作業を実行します。私たちは、このカスタム注釈(あなたは反射法を使用することができます翻訳者注)に対処するためのいくつかの新しいコードを記述することで行う必要があります。

@Componentこれは、とされる<bean>同じ、あなたはSpringコンテナ管理をホストすることができます。

@Service、  @Controller 、  @Repository = { @Component +}いくつかの特定の機能。これは、機能のいくつかのこれらのノートが同じであることを意味します。

もちろん、次の三つの注釈は、当社のアプリケーションを層別化するために使用されています。

@Controller要求のアノテーションクラスフロントエンド処理、転送、リダイレクト。サービス層は、メソッド呼び出し含む 
@Serviceビジネスロジック処理注釈付き 
@RepositoryDAO(データアクセスオブジェクト、データアクセスオブジェクト)としてアノテーションターゲットクラスを、これらのクラスは、データベース上で直接動作することができ 
、コード間の疎結合を達成するために、積層次いで、これらの操作と架空の表情、場合にのみ、コードもはっきりと明るく、プロジェクトを管理しやすいの間で呼び出す@Controllerようにコードやいかに難しい展開するには、一つの場所にコメント、その後、すべての要求が転送され、業務処理、データベース操作コードブレンドメンテナンス。

概要

@Component、  @Service、  @Controller、  @Repositoryスプリング注釈であり、注釈はスプリングフレームワークスプリングスキャンおよび管理するために容器に注入することができる 
@Component一般的な意見であり、コメントは、コメント他の三つの拡張であり、特定の機能有し 
@Repository有する永続層に注釈をデータベース操作は、異常な機能の永続層ばね翻訳例外をスロー。 
@Controller層は、機能をリダイレクト、要求を転送したスプリングMVC注釈です。 
@Serviceそのビジネスロジック層、ビジネスロジック層内のコメントが、マークのこの種のノート。 
後で使用するためにこれらのノートは成層で、我々は、コードをデカップリングするためのデータベースの処理動作を分離するだけでなく、将来のプロジェクトの維持・発展を促進するための処理ロジック債務処理を要求することができるようになります。

おすすめ

転載: www.cnblogs.com/sanmuqingliang/p/11647114.html