【JAVA】スプリングベース

全体的なアーキテクチャを1.spring

ここに画像を挿入説明

  • SpringIOCインターフェイスと一致し、IOCコンテナたBeanFactoryの最も基本的なを達成するため、
  • スプリングはまた、コアモジュールであるSpringAOP
  • DispatcherServletの周りSpringMVC、MVCは、フロント・エンド・デザイン・WEBを完了するために実装することができます
  • JDBCからなるSpringJDBC /春ORMスプリングパッケージは、操作対象RDBMS、JDBCを使用するオブジェクト指向の方法を提供することに加えて、テンプレート、パッケージとしての基本的な操作方法JDBCTemplateを提供します。一方、春ORMパッケージはまた、休止状態などのツールの多くは、などを提供します
  • 春AOPは、宣言的トランザクション管理によるトランザクションを実現します
  • Spirngすると、リモート通話アプリケーションは、シールドを達成するための通信アプリケーションのさまざまな春のパッケージにより、展開を配布し、詳細を呼び出します
  • 春Springアプリケーションは、このモジュールを介して達成するために、サードパーティの技術に対応するために、より便利で簡単なことができます

フレーム取得した接続プールに4つの方法を2.Spring

  • DBCPデータソース
  • C3P0データソース
  • スプリング実装クラス・データ・ソース(DriverManagerDataSource)
  • JNDIデータソースを取得します。

注入方式の3種類3.spring

  • コンストラクタ・インジェクション
  • セッター・インジェクション
  • インタフェース注入

4.springトランザクション管理

  • 強力なプログラムによるトランザクション管理の柔軟性が、維持が困難
  • (使って)宣言的トランザクション管理業務コードとトランザクション管理の分離は、単にトランザクションを管理するために、注釈やXML構成を使用し、AOPによって実現
    • @Transactionalアノテーション方法は、公衆視認性に適用することができます
    • 推奨@Transactional特定のクラスにアノテーション(またはクラスメソッド)ではなくインターフェイス
    • 注釈付きデータベース操作方法は異常で起こる場合、デフォルトでは、すべてのデータベース操作は、実行時にロールバックされます。異常の異常発生が確認された場合、デフォルトのデータベース操作は、まだケースを提出します
  • 親クラスの標準サブクラスは、マークアップしていないならば@Transactional注釈の役割は、つまり、サブクラスに伝播することができます。しかし、逆さまに死にます
  • あなたはセクションを呼び出したい場合は、同じクラスに加え、コールの無い注釈付きのノートでは、トランザクションは内部コールがロジックのエージェント部を呼び出さないので、この方法は有効になりませんと呼ばれている、)AopContext.currentProxy(考えることができますこの方法。

5.springトランザクション伝播の振る舞い

  • PROPAGATION_REQUIRED(デフォルト)トランザクションがすでに存在する場合にトランザクションが、新しいトランザクションを作成していない場合は、このトランザクションに追加しました
  • 何のトランザクションが非トランザクションの方法で実行されていない場合PROPAGATION_SUPPORTSは、現在のトランザクションをサポート
  • PROPAGATION_MANDATORYなしトランザクション場合に例外をスローし、現在のトランザクションを使用します
  • PROPAGATION_REQUIRES_NEW新しいトランザクション、現在のトランザクションが存在する場合、現在のトランザクション・サスペンション
  • PROPAGATION_NOT_SUPPORTEDは、現在のトランザクションが存在する場合は、保留中の現在のトランザクションを置く、非トランザクションウェイに操作を実行します
  • PROPAGATION_NEVER現在のトランザクションが存在する場合は、非トランザクションの方法を実行するために、例外がスローされます
  • 現在のトランザクションが存在する場合PROPAGATION_NESTED、それは、ネストされたトランザクション内で実行されます。何の取引は同様の操作で実行されていない場合PROPAGATION_REQUIRED

資源と@Autowireの違い@ 6。

  • (このコメントは春の金属産業である)あなたがnull値を許可する場合は、デフォルトの請求は依存オブジェクトが、存在していなければならないなど、その必要なプロパティがfalseに設定できるタイプのフィッティングすることで、デフォルトを@Autowired:@Autowired(=偽必須)私たちは、アセンブリの名前を使用したい場合は@Qualifierコメントの組み合わせを用いて行うことができます
  • @ResourceはJDK1.6サポート注釈、名前によって組み立てデフォルトであるあなたがメモを書く場合は、名前で検索すると、デフォルトのフィールド名を取り、メモがフィールド上に書かれたときに、name属性を指定しない場合、名前は、name属性で指定することができますsetterメソッドに組み立てられ、デフォルトの属性名を取ります。豆の種類に応じて、組み立てられたときには、一致する名前が見つかりません。しかし、指定された場合、名前は属性場合は、名前だけで組み立てられることに注意してください。

7.SpringMVCワークフロー

ここに画像を挿入説明

  • ⑴ユーザ要求がServeltのDispatcherServletスプリングフロント制御を捕捉され、サーバにリクエストを送信します。
  • ⑵DispatcherServletリクエストURLは、要求されたリソース識別子(URI)を取得するために解析します。これによれば、次にURI、最後に(オブジェクトとインターセプターを対応するハンドラ・オブジェクト・ハンドラーを含む)オブジェクトのすべての関連するコールHandlerMappingハンドラ構成にアクセスし、オブジェクトHandlerExecutionChainの形に戻ります
  • 得られた⑶のDispatcherServletハンドラは適切なHandlerAdapterを選択します。(注:成功HandlerAdapter場合は、この時間はpreHandlerブロッカー(...)メソッドを開始します)
  • ⑷モデルデータの要求抽出基準ハンドラに充填され、ハンドラ(コントローラ)を開始しました。お使いの構成に応じて、春はあなたには、いくつかの余分な作業を行うのに役立ちます、ハンドラを充填する過程に参加します:
    • HttpMessageConveter:要求メッセージ(例えば、JSON、XMLデータなど)被験者には、指定された応答情報にオブジェクトを変換します
    • データ変換:データ要求メッセージの変換。文字列を整数など、ダブル、に変換され、
    • 要求メッセージのデータ形式:データの基です。フォーマットされた数字の文字列またはフォーマットされた日付に変換されるように
    • データ検証:BindingResultにデータ(長さ、形式など)、検証結果記憶またはエラーの検証
  • ⑸Handler実行後、のDispatcherServletへのModelAndViewオブジェクトを返します
  • (容器ViewResolverに登録されなければならないスプリング)適切なViewResolverを選択戻り⑹のModelAndViewはのDispatcherServletに返さ
  • モデルとビューの⑺ViewResolver組み合わせ、ビューをレンダリングします
  • ⑻クライアントに戻すレンダリング結果

おすすめ

転載: blog.csdn.net/cheidou123/article/details/93921979