Springファミリーバケツ一覧

13764 ワード

一、Spring
1.1 Spring原理
SpringはJava企業級のアプリケーション開発を簡略化するためのオープンソースフレームです。Springは簡単なJavaBeanに従来はEJBならではの機能を実現させることができます。Springは設定よりも約束された枠組みに従うもので、主な核心は注入と制御反転に依存する。
Springの核心:
コントロール反転(IOC):Spring容器は工場モードを使って必要なオブジェクトを作成してくれました。直接的に過度に結合したnewやget Instanceなどのオブジェクト構成例は必要ありません。デカップリングを実現する能力。これは反転を制御する思想です。主な表現は、Spring Config XMLファイルを使用する時、オブジェクトIDとクラスパスをラベルの形で説明します。springアプリケーションコンテキストでこの設定ファイルを読み込む際に関連する構成を読み込むと、工場類と反射機構を呼び出してそのオブジェクトを作成します。私たちが作成する必要はありません。springから提供されたオブジェクトを直接呼び出してください。
依存注入(DI):    SpringはJavaBeanオブジェクトのset方法またはパラメータの構造方法を使用して、必要なオブジェクトを作成する時に、その属性を自動的に設定するために必要な値のプロセスは、注入の思想に依存します。
面向けプログラミング(AOP):  切面向けプログラミングAOPの下層は動的エージェントであり、Springは二つの動的エージェントを提供し、一つはインターフェースのJDK動的エージェントを採用し、一つはクラスのCGLOIB方式を採用して動的エージェントを実現する。
1.2 Springにおけるデザインモード
  • シングルケースモード――springプロファイルにおけるbean、@Bean注釈の方法は、@Autowire、@Controller/@RestitController、@Service、@Component注解の方法は、デフォルトでは単一の例モードである。
  • プロキシモード——ダイナミックプロキシ使用者AOP
  • テンプレート方法モードは、コード重複問題を解決するために使用されます。例えば、RestTemplate、Jms Template、Jpa Template;
  • 工場モード——工場モードを使って作成対象を解決しても、ユーザーの露出に対して作成ロジックがない問題です。Springは、BenFactoryを使用してオブジェクトのインスタンスを作成します。
  • 1.3 Springの常用注釈
    注解の起動:注解組立はデフォルトではクローズされています。Springのコア構成ファイルに注釈を与える組立モードを配置する必要がある。
    常用のコメント:
    @Required:この注釈は設定方法に適用されます。
    @Autowired:この注釈は、値設定方法、非設定方法、構造方法、変数に適用されます。
    @Qualfier:この注釈と@AutoWiredを組み合わせて使用して、キャンセルするための定bean自動組立の曖昧さ
    1.4 Spring Beanのライフサイクル
    bean定義:プロファイルで使用して定義する
    bean初期化:
  • は、設定ファイルに作成されたinit-method属性により
  • を完成する。
  • org.springframe ebook.beans.factory.Initializing Beanインターフェース
  • を実現しました。
    beanコール:beanのインスタンスを得ることができる3つの方法があります。呼び出しを行います。
    バーン焼却:焼却には二つの方法があります。
  • は、プロファイル作成のdestory-method属性
  • を実現する。
  • org.springframe ebook.bean.factory.Dispposeabenインターフェース
  • を実現しました。
    1.5 Spring構造図
    1.6 Springの役割
  • Springは、プロファイルから作成され、組立オブジェクト間の依存関係
  • を作成する。
  • Springは、ログ記録、性能統計、セキュリティ制御などのコード業務ロジックを強化し、侵入性がないようにする。
  • Springデータベース管理の簡素化及び事務の使用量
  • Srping容器はJAVEEとより多くの第三者開発パッケージを統合し、より多くの技術を統合することができます。
    1.7 Spring事務
    宣言式事務管理の定義:Springプロファイルにおける声明式の処理事務をコード式の処理事務に代用する。この利点は、開発されたコンポーネントに事務管理が侵入しないことです。事務管理はシステムレベルのサービスなので、業務ロジックの一部ではなく、開封して維持するのがとても便利です。
    宣言式事務管理には、プロファイルと注釈ベースの2つの構成があります。
    設定ファイル:
    ####  TransactionInterceptor        :       :transactionManager,    
           ,               ;    Properties   transcationAttributes
      ,           ,        ,          ,               
        。
    
    <bean id="transcationInterceptor" 
          class="org.springframework.transcation.interceptor.TranscationInterceptor">
       <property name="transactionManager" ref="transcationManager"/>
       <property name="transactionAttributes">
                 <props>
                                      <prop key="transfer">PROPAGATION_REQUIREDprop>
                 props>
       property>
    bean>
    <bean id="bankService"
          class="org.springframework.aop.framework.ProxyFactoryBean">
          <property name="target" ref="bankServiceTarget"/>
          <property name="interceptorNames">
               <list>
                   <idref bean="transactionInterceptor"/>
               list>
          property>
    bean>
    <bean id="bankServiceTarget"
          class="....................BankServiceImpl>
            bankDao" ref="bankDao"/>
    bean>
    #########  TransactionProxyFactoryBean        :            。  Spring
            
    
    <bean id="bankServiceTarget"
          class=".......................BankServiceImpl">
          <property name="bankDao" ref="bankDao"/>
    bean>
    <bean id="bankService"
          class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
         <property name="target" ref="bankServiceTarget"/>
         <property name="transcationManager" ref="transactionManager"/>
         <property name="transcationAttributes">
             <props>
                              <prop key="transfer">PROPAGATION_REQUIREDprop>
             props>
    bean>
    #############  <tx>            :           ,Spring2.x   <tx><aop><bean id="bankService"
           class=".......................BankServiceImpl">
           <property name="bankDao" ref="bankDao"/>
    bean>
    <tx:advice id="bankAdvice" transcation-manager="transactionManager">
        <tx:attributes>
            
            <tx:method name="transfer" propagation="REQUIRED"/>
        tx:attributes>
    tx:advice>
    <aop:config>
         
         <aop:pointcut id="bankPointcut" expression="execution(**.transfer(..))"/>
         <aop:advisor advice-ref="bankAdvice" pointcut-ref="bankPointcut"/>
    aop:config>
    注釈に基づく声明式事務管理:注釈@Transcationalを使用すると、インターフェース、インターフェース方法、クラス、およびクラスの方法に浸漬することができ、注釈された方法はいずれもこのタイプの事務的属性を有する。
    @Transcational(propagation=Propagation.REQUIRED)
    public boolean transfer(Long fromId,Long toId,double amount){
             return bankDao.transfer(fromId,toId,amount);
    }
    プログラミング事務と宣言式事務の違い:
  • プログラミング式事務は、プログラマが自分で事務処理を作成して呼び出します。
  • 宣言式事務はプロファイルに配置され、一般的にはフレームワークに
  • を使用する。
  • 宣言式事務はシステムと業務ロジックを分離し、コードの侵入を減少させる

  • 1.8 BenFactory常用実現類
    BenFactoryは工場モデルの実現である。制御反転の機能を提供して、アプリケーションの構成と依存を本当のアプリケーションコードから分離します。一般的なBenFactoryはDefaultListable BenFactory、Xml BenFactory、Appliation Controxtなどがあります。
    ここで最も一般的なのはXmlBenFactoryであり、xmlファイルの定義に従ってbeansをロードし、この容器はxmlファイルから構成されたメタデータを読み取り、メタデータで完全に構成されたシステムまたはアプリケーションを作成する。
    Springプロファイルにはどのような用途がありますか?Spring Config Xmlにはクラス情報が含まれています。それらをどのように配置し、どのように相互に呼び出すかを説明しています。
    Apple Contectの実現類:
  • FileSystemXmlAppleicationComptext:この容器は1つのxmlファイルからbeansの定義をロードして、xml Benプロファイルの全パスはその構築関数
  • に提供しなければなりません。
  • Class PathXml AppleicationContext:この容器も1 xmlファイルからbeansの定義をロードします。その構造関数を考えて、classpathに入る必要があります。なぜなら、classpathを通じてbeanファイル
  • を検索します。
  • WebXmlAppleicationComptext:この容器にロードされているのはweb.xml
  • です。
    BeanFactoryとApplication Comptextの違いは何ですか?
  • BenFactory:ベースタイプのioc容器は、完成したiocサービスサポートを提供しています。特別に定められていない場合は、デフォルトでは遅延初期化策を採用します。相対的に、容器の起動初期速度が速く、必要な資源が限られています。
  • Applectory:Appplication ContectはBeanFactoryに基づいて構築され、比較的高級な容器実現であり、BeanFactoryのすべてのサポートを除いて、Applectory管理の対象は、容器起動後にすべて初期化されバインディングされている。
  • 1.9 Spring AOP
    AOPは、表面に向かってプログラミングし、「横断」という技術を利用して、パッケージの対象の内部を切り開き、複数の種類に影響を与えた公共行為を再利用可能なモジュールにカプセル化し、Asppect(切断面)となり、簡単に業務とは関係なく、業務モジュールに共通に呼び出された論理または責任をカプセル化し、システムの重複コードを少なくすることができます。モジュール間の結合度を低減し、将来の操作可能な行とメンテナンス性に寄与する。
    Spring通知タイプ
    通知は方法実行前または後に行う動作で、実際にはプログラム実行時にSprigAopでトリガされるコードセグメントです。
    Springカットは5種類の通知を適用できます。
  • beforeフロント・通知は、1つの方法が実行される前に呼び出される
  • after後置通知は、1つの方法が実行された後に呼び出され、方法が実行されたかどうかに関わらず、成功したかに関わらず、
  • after-runningは、方法が成功したときだけトリガ
  • をトリガする。
  • aroundサラウンド通知は、方法実行前に方法実行後に呼び出す通知
  • である。
    二、SprigMVC
    SpringMVCの作業原理
  • ユーザは、SpringMVCフロントエンドコントローラDisplatcerhServletによって捕捉されることを要求するサーバに要求を送信する。
  • Displatch Servletは要求URLを解析し、要求リソース識別子(URL)を取得し、そのURLからHandlerMappingを呼び出して要求をプロセッサHandlerExcutionCharinにマッピングする。
  • DisplatServletは、Handlerを取得することによって、適切なHandlerAdapterアダプタ処理を選択する。
  • Handlerは、データ処理が完了したら、一つのModelAndViewに戻ります。
  • Handlerが戻ってきたModelAndView()は、論理ビューだけが正式なビューではなく、Displatch ServletがViewResoverビュー解析器を介して論理ビューを真のビュービュービュービューViewに変換する。
  • Dispactch Servletは、Model AndView()のパラメータをModelで解析し、最終的に表示されたviewを解析してクライアントに返す。
  • SpringMVC実行タイミングチャート: