2020年のJavaの質問面-日(6本のSpringフレームワークの論文)

Javaプログラマのために、そしてインタビューの質問の面でいくつかの春を書くために、彼はJavaプログラマは、この章であることを言及しないようにあなたをアドバイスし、あなたが春、SpringMVC、春のブーツを、知らないと言います

1.春AOPの話

アスペクト指向プログラミング、私たちのアプリケーションでは、多くの場合、何かをする必要がありますが、これらのものは、すべての更新方法の時間の実行時間を記録するために、例えば、コアビジネスとは何の関係もない、としてオペレータ情報は、春AOPによって記録されました技術、需要はコード更新を変更せずに完了することができます

2.春AOPについての原則の話

春AOPのダイナミックプロキシ主に二つの方法、JDKのダイナミックプロキシとCGLIBの動的なプロキシがあります。JDKの動的プロキシプロキシクラスは、反射により受信し、インタフェースを実装する必要があり、プロキシクラスを要求します。コアJDKダイナミックプロキシクラスのInvocationHandlerインタフェースおよびプロキシであります

ターゲット・クラスがインタフェースを実装していない場合は、春AOPは、動的プロキシCGLIBのターゲットクラスを使用することを選択します。CGLIB(コード生成ライブラリ)は、コード生成ライブラリは、クラスは次のようにマークされているそうだとすれば、動的プロキシを行うには、継承CGLIBウェイを通じて、ノート、実行時に動的に生成されたクラスのサブクラスでもあります最終的な、それは動的プロキシCGLIBのために使用することができません

私は動的プロキシ(CGLIBおよびJDK)を言う3。てみよう

JDKの動的プロキシクラスとデリゲートクラスが同じインターフェイスを実装する必要があります。実装インタフェースは、Javaの動的プロキシメカニズムを使用することができることを唯一のクラスという。しかし、すべてのクラスでは、実際にあなたがインターフェイスを実装して与えることは発生しません。このように、インターフェースクラスの実装が存在しないために、あなたは、このメカニズムを使用することはできません。CGLIBはの動的プロキシクラスを達成することができます

4.Spring IOCを達成する方法

  • 春org.springframework.beansパッケージと基礎org.springframework.contextのIoCコンテナのSpring Frameworkの形成されたパッケージ
  • コンフィギュレーション・オブジェクトの任意のタイプが可能となるようにたBeanFactoryインタフェースは、高度な設定メカニズムを提供します。ApplicationContextのたBeanFactoryインタフェース(サブインターフェース)拡張されているが、付加的な機能は、簡単な統合としてSpringのAOPを有するたBeanFactoryに基づいて追加するだけでなく、(国際化のために)、イベントの伝播をメッセージリソースを取り扱うためのメカニズムを提供しました。そして特別に構成されたアプリケーション層は、WebアプリケーションのようにWebApplicationContext
  • org.springframework.beans.factory.BeanFactoryスプリングIoCコンテナは、上述の包装の様々なフロント管理Beanの、具現化されます。たBeanFactoryインタフェースは、コアインタフェーススプリングIoCコンテナであります

違い5.BeanFactoryとのApplicationContextとは何ですか

  • たBeanFactoryファクトリクラスはビーンのセットを含むように理解することができます。たBeanFactoryは、Beanをインスタンス化するための要求を受信すると、クライアントに対応し、豆の種類の定義が含まれています
  • たBeanFactoryは、オブジェクトがインスタンス化されるクラス間の協力関係を生成します。これは、クライアントが解放された豆豆で自身を設定します。たBeanFactoryはまた、制御豆のライフサイクルが含まれ、初期化メソッドは、クライアント(初期化メソッド)と呼ばれ、破壊の方法(破壊法)
  • 表面上で、要求に応じて関連豆、豆分布関数で提供されるのApplicationContextたBeanFactoryのビーン定義と同様。これに基づき、しかし、ApplicationContextのは、追加機能を提供します:
    1.国際テキストメッセージのためのサポートを提供するために
    2.ユニフォーム・リソース・ファイルは読み取りモード
    リスナーに登録3.豆のイベントを

ライフサイクルの約6春豆の話

  • 春のBeanのライフサイクルは、シンプルで理解しやすいです。Beanインスタンスが初期化されると、初期化動作の以下のシーケンスは、使用可能な状態を達成します。同様に、コールが関連する操作デストラクタBeanを必要とせず、容器を豆から除去されたとき

  • 春のコンテナに作成される豆のライフサイクルを管理する責任のSpring Beanの工場。Beanのライフサイクルは、以下からなる2つのコールバック(コールバック)メソッドで構成されて
    初期化後1を呼び出すコールバックメソッド。
    2.破壊コールバックメソッドの呼び出しの前に。

  • :スプリングフレームワークは、Beanイベントのライフサイクルを管理するための以下の4つの方法を提供
    1.InitializingBeanとDisposableBeanコールバックインターフェースを
    前記他の特殊な行動のための認識インターフェース
    方法は、カスタムinit()メソッドとdestroy()プロファイル3.Bean
    4 。@ PostConstruct方法と@PreDestroyのコメント

春のトランザクションの実装約7話

エンコーディング

いわゆるプログラムトランザクションは、トランザクション管理に類似しているJDBCプログラミング、トランザクションを符号化することによって達成意味します

宣言型トランザクション管理

宣言的トランザクション管理の2つの方法があります:
1. XML設定ファイルが途中に基づいて
@Transaction 2.ビジネスメソッドに別の本当にコメントした、ビジネスルールは、ビジネス・ロジックに適用されます

基礎となる原則総務を8.Spring

IOC分割処理部

春には問題が単一のローカルデータベースのトランザクション処理で解決したように、特定の実装首相はIOCに春とトランザクション処理部を分けました。トランザクションの様々な構成とIOCは(トランザクション・マネージャは、トランザクションセットおよび分離機構の伝搬特性を提供した)容器を置きます

AOPインターセプタは、トランザクション処理クラスのために必要

スプリングトランザクションモジュールは、宣言型トランザクションAOP機能、プロキシプロキシオブジェクトを生成するためにAOP TransactionProxyFactoryBeanインタフェース機能を用いて、(このような構成とリードトランザクション、抽象トランザクション・オブジェクトのインプリメンテーションとして)特定の操作、完全TransactionInterceptorによって実現されます傍受プロキシアプローチ、傍受の方法に取引の織り機能。IOCのコンテナ設定は、トランザクション処理の内部データ構造に、トランザクション属性を読み取るスプリング(TransactionAttributeSourceAdvisor使用)、データ変換オブジェクトがTransactionAttribute表さ必要

トランザクション処理を実装するには(世代、コミット、ロールバック、一時停止)

春は、特定のトランザクション・プロセッサに委託しました。抽象的で適応を実装します。特定のトランザクション・プロセッサは適応:データソースデータソースのサポートは、Hibernateのトランザクション・サポートのソースデータ、JDOトランザクションサポートのソースデータ、JPA、JTAトランザクション・サポート・ソース・データを。これらは、設計PlatformTransactionManager、支援AbstractPlatforTransaction一連の取引によりサポートされています。トランザクションマネージャーは、一般的に使用されるデータソースのサポートの範囲を提供しています

コンバイン

PlatformTransactionManager春宣言的トランザクション処理システムの設計を形成する、TransactionInterceptionインターフェースはTransactionProxyFactoryBeanと組み合わせ聞かせ実現しました

カスタム注釈機能を実装する方法9.

カスタム注釈を作成し、キーワードのインターフェースに同様のインタフェースを作成1.、注釈は、@記号で開始する必要がある
メソッドは、パラメータを使用して注釈を付けることができません2.
基本的なタイプ、文字列、列挙、注釈または3.メソッドの戻り値の型注釈は次のように定義されますアレイのこれらのタイプ
4.アノテーションの方法は、デフォルト値を有することができる
メタデータアノテーションを含むことができる5注釈自体を、アノテーション要素他の注釈を注釈するために使用され

実行中のプロセスを10.Spring MVC

  • DispatcherServletに提出されたすべての要求に他のモジュールSpring MVCのは、それがアプリケーションシステムは、実際の要求を処理するための責任があるの委託しました
  • クエリの一つ以上のHandlerMappingのDispatcherServlet、リクエストコントローラの処理を見つけます
  • ターゲットコントローラに要求を提出するのDispatcherServlet
  • ビジネス・プロセスのためのコントローラロジック、のModelAndViewを返します。
  • ディスパッチャクエリ一つ以上のViewResolverビューリゾルバは、指定されたオブジェクトビュー・オブジェクトのModelAndViewを見つけます
  • クライアントに描画処理に対応するViewオブジェクト

11.Spring MVCは、プロセスを開始します

load-on-startupのSpring MVCのサーブレット構成のweb.xmlファイルでは、プログラムは春のMVCを初期化するとき、サーブレットへのコンフィギュレーション設定にHttpServletBean contextConfigLocationプロパティで、起動し、FrameworkServlet中にWebApplicationContextを作成しますので、 DispatcherServletのクラスパスcontextConfigLocationは、全体的なアセンブリ春のMVCの初期化中に配置されたxmlファイル

単一ケース12.Springの原則

春が実施されたレジストリの単一例の方法により、Beanインスタンスの作成で、レジストリは、オブジェクトをキャッシュしているのConcurrentHashMap

13.Springは、どのようなデザインパターンのフレームワークで使用されます

  • プロキシモード:AOPリモーティングと、よりに使用されています
  • シングルトン:春は、デフォルトの設定ファイルビーンシングルトンで定義されています
  • テンプレート方法:コードの重複の問題を解決します。たとえば。RestTemplate、JmsTemplate、JpaTemplate
  • フロントコントローラ:春は、配信要求を提供するのDispatcherServlet
  • ビューのヘルプ(ビューヘルパー):春は、効率的なマクロ、ビューに統合コードを分散させるのを支援するために、JSPタグのセットを提供します
  • 依存性の注入:たBeanFactory / ApplicationContextのインターフェースコアコンセプトを通して、
  • ファクトリーモード:たBeanFactoryは、オブジェクトのインスタンスを作成するために使用されます

おそらく、我々はこれらのトピックは、便利な感触をまとめている参照して、このシリーズを見続けてください

シリーズの前の問題は、考え方の記事、ベースの記事、記事の収集、スレッド論文、ロック機構の記事を持っています

シリーズはわずかサービス、データストレージ、キャッシュの使用状況、メッセージキュー、セキュリティ、パフォーマンスチューニング、デザインパターンとは、分析を必要とする、分散型、ジャワの基礎、コレクション、スレッド、ロック機構、Springフレームワークの合計を関与しました

リリース6元記事 ウォン称賛10 ビュー1443

おすすめ

転載: blog.csdn.net/weixin_43291173/article/details/104266549