JAvaでよく使われる注釈

5166 ワード

伝統的なSpringのやり方は使います.xmlファイルをbeanに注入したりaop、トランザクションを構成したりするには、2つの欠点があります.
1.すべての内容が配置する場合.xmlファイルでは、.xmlファイルは非常に膨大になります.需要によって分かれば.xmlファイル、では.xmlファイルはまた非常に多いです.つまり、プロファイルの読み取りや保守性が低下します.
2、開発中である.JAvaファイルと.xmlファイル間を切り替え続けるのは面倒なことであり、同時にこのような思考上の一貫性も開発の効率を低下させる.
この2つの問題を解決するためにSpringは注釈を導入し,「@XXX」方式により注釈をJava Beanと緊密に結合させ,プロファイルの体積を大幅に減少させ,Java Beanの可読性と集約性を増加させた.
1.@Controller注記はクラスにマークされています.マークされているクラスはSpringMVC Controllerオブジェクトです.配布プロセッサは、注釈を使用したクラスのメソッドをスキャンします.一般的に、Controllerタグ付けされたクラスはコントローラです.
2.@RestControllerと@Controllerの違いですが、実は@RestControllerの役割は@Controller注釈と@ResponseBody注釈の同時使用に相当します.@RestController注釈Controllerを使用する場合、controllerのメソッドはjspページに戻ることができず、構成されたビュー解析器は機能しません.オブジェクトを返す場合は、適応したHttpMessageContextで指定されたフォーマットに変換した後、ResponseオブジェクトのBodyのデータ領域に書き込んで戻る必要があります
3.@RequestMappingは、要求アドレスマッピングを処理するための注釈であり、クラスまたはメソッドで使用できます.クラスでは、クラス内のすべての応答要求を表す方法が親パスとして使用されます.メソッドにおいて、メソッドを表す応答要求は、アドレスが特定のパスとして使用されていることを示す.postリクエストまたはgetリクエストを設定することもできます.
4.@GetMappingは、@RequestMapping(method=RequestMethod.GET)の略である組合せ注記です.この注記は、HTTP Getを特定の処理方法にマッピングする.
5.@PostMappingは、@RequestMapping(method=RequestMethod.Post)の略である組合せ注記です.この注記は、HTTP Postを特定の処理方法にマッピングする.
6.@RequestParam注記は、要求パラメータをcontrollerメソッドのパラメータにマッピングするために使用されます.名前の通り、要求からパラメータを取得します.value:パラメータ名、すなわち、パラメータを入力する要求パラメータ名.required:必須かどうか、デフォルトはtrueで、リクエストに対応するパラメータが必要であることを示します.そうしないと、404エラーコードが報告されます.defaultValue:デフォルト値は、要求に同じ名前のパラメータがない場合のデフォルト値を示します.
7.@PathVariable注記は、URL内のプレースホルダパラメータをcontrollerメソッドのパラメータにバインドできます.URL内の{xxx}プレースホルダは、@PathVariable("xxx")によって操作メソッドのパラメータにバインドできます.名前の通り、パスの中から変数を取得します.つまり、変数はパスの部分です.
8.@Valueにはパラメータが必要です.ここでパラメータは、@Value(#{configProperties['upload.url']})または@Value(${upload.url})の2つの形式で使用できます.
①@ Value(#{configProperties['upload.url']}))という形式の構成には「configProperties」がありますが、実はプロファイルのロード対象を指定しています.構成は以下の通りです.
      
              
     
       classpath:/config/custom.properties 
    
     

②@ Value("${upload.url}")この形式では、特定のロードオブジェクトを指定する必要はありません.この場合、P r e f e r e n c e s PlaceholderConfigurerを完了するために重要なオブジェクトが必要です.コンフィギュレーション1のコンフィギュレーションを使用する場合は、次のように書くことができます.
 
         
   

プロファイルを直接指定する場合は、次のように書くことができます.
 
        
           config/custom.properties
         
  

9.@Autowired注記は、コードJavaコードのgetter/setterとbeanプロパティのpropertyを除去するための自動アセンブリです.もちろん、getterは個人のニーズを見て、私有属性が対外的に提供される必要がある場合は、保留しなければならない.

最も簡単な構成は、springが注釈を使用していることを示し、springはxxxパスの下の注釈を自動的にスキャンします.Springで@Autowired注記が検出されると、コードコンテキストに一致するBean(デフォルトはタイプ一致)が自動的に検出され、対応する場所に自動的に注入されます.
インタフェースに複数の実装クラスがある場合、Springはどの実装クラスを参照すべきか分からない.この場合、通常2つの解決策があります.
①、余分な実装クラスを削除すると、Springは自動的にbase-packageの下でインタフェースの実装クラスを探して、インタフェースが1つの実装クラスしかないことを発見して、直接この実装クラスを引用します
②、実装クラスが複数ある場合はどうすればいいですか?@Qualifier注記を使用できます.
注意@Qualifier注記カッコの中にはインタフェース実装クラスのクラス名があるはずです
10.@Resource注記:
①、@ Resourceの後ろには何もありませんが、デフォルトではname属性でbeanをマッチングし、typeでマッチングすることは見つかりません.
②、nameまたはtypeを指定すると指定されたタイプに応じてbeanにマッチします
③、nameとtypeを指定すると、指定したnameとtypeに基づいてbeanをマッチングし、いずれの不一致もエラーを報告する
@Autowiredと@Resourceの違い
1、@AutowiredのデフォルトはType方式でbeanマッチングを行い、@ResourceのデフォルトはName方式でbeanマッチングを行う
2、@AutowiredはSpringの注記、@ResourceはJ 2 EEの注記ですが、注記するときにこの2つの注記のパッケージ名を見ればわかります
Springはサードパーティに属し、J 2 EEはJava独自のものなので、@Resource注記を使用してコードとSpringの結合を減らすことをお勧めします.
11@Serviceコメント
@Autowiredまたは@Resource注記により、beanプロファイルのpropertyプロパティを減らし、springのプロファイルにbeanがあります.@Service注記を使用して簡略化できます.簡略化はbeanも取り除くことだ.スプリングプロファイルに自動スキャンのラベルが1つしかないようにし、Javaコードの集約性を強化し、プロファイルをさらに削減します.
@Service注釈、実は2つのことをしました:注釈がクラスAにあることを例にとります
①、クラスAがbeanであることを宣言することは重要です.クラスAはbeanであるため、@Autowiredを使用してクラスAをメンバー変数として自動的に注入することができます.
②、Aのbeanにおけるidは「a」、すなわちクラス名で頭文字が小文字である
12.@Scope注記.Springのデフォルトで生成されるbeanは単一の例で、複数の例を使用する場合はxmlファイルでbeanでscopeプロパティを構成できます.注記も同様です.@Scopeを構成すればいいです.デフォルトは「singleton」です.つまり、「prototype」は、プロトタイプが毎回newされることを示します.
13.@Component注記.
@Component,@Service,@Controller,@Repository        ,        spring     。
@Service         ;@Controller         ;@Repository          ;@Component    ,         。

14@Param注記
パラメータに名前を付けると、パラメータの名前に基づいてパラメータ値が得られ、sql文にパラメータが正しく入力されます.
メソッドパラメータの前に@Param(「パラメータ名」)と書いて、パラメータに名前を付けます.名前は括弧の内容です.