Springよくある面接問題のまとめ

4066 ワード

Java Webを学ぶにはSpringを学ぶことは避けられない.じゃ何がスプリングですか?Springはオープンソースの軽量級Java開発の枠組みであり、主に開発を簡略化し、メンテナンス性を高めるためである.今日は面接中のSpringに関する面接問題をまとめます.
  • Spring
  • Spring IOC
  • Spring AOP
  • Spring bean ?
  • @Component @Bean ?
  • Spring MVC ?
  • SpringMVC
  • Spring ?
  • いくつかの重要なSpringモジュールを列挙します.
    下図はSpring 4.xバージョンに対応しています.
  • Spring Core:基本的に、Springの他のすべての機能はこのクラスのライブラリに依存する必要があります.主にIOC依存注入機能を提供する.
  • Spring Asppects:このモジュールはAsppectJとの統合に対応している.
  • Spring AOP:切断面向けのプログラミング実現を提供します.
  • Spring JDBC:Javaデータベース接続.
  • Spring JMS:Javaメッセージサービス.
  • Spring ORM:HbernateなどのORMツールをサポートするために使用します.
  • Spring Web:Webアプリケーションを作成するためのサポートを提供します.
  • Spring Test:JUnitとTestNGテストのサポートを提供します.
  • Spring IOCについて話します
    IOC(Inverse of Control:制御反転)は、元々プログラムでオブジェクトを手動で作成した制御権をSpringフレームワークで管理するという設計思想です.IOC容器は実際にはMap(key,value)であり、Mapには様々なオブジェクトが格納されている.
    オブジェクト間の相互依存関係をIOC容器に任せて管理し、対象の注入をIOC容器で行う.このように、アプリケーションの開発が大幅に簡略化され、複雑な依存関係からアプリケーションが解放されます.IOC容器は工場のように、オブジェクトを作成する必要がある時は、配置ファイル/注釈を配置すればよく、対象がどのように作成されたかを全く考慮しなくてもいいです.
    IOCソース解析:IOCソース解析
    Spring AOPについて話します
    AOP(Asppect-Oriented Programming:面向けプログラミング)は、業務とは関係なく、業務モジュールに共通して呼び出される論理または責任(例えば、事務処理、ログ管理、権限制御など)をパッケージ化して、システムの重複コードを低減し、モジュール間の結合度を低減し、将来の開拓性と維持性に有利である.
    Spring AOPは動的エージェントに基づいており、代理の対象があるインターフェースを実現すると、Spring AOPはJDK Proxyを使用して代理オブジェクトを作成し、インターフェースが実現されていないオブジェクトに対してJDK Proxyを使用して代理できなくなり、この時Spring AOPはCglibを使用します.
    Springの中のbeanの作用領域はどれらがありますか?
  • singleton:唯一のbeanの例、Springのbeanのデフォルトは一例です.
  • prototype:要求毎に新しいbeanインスタンスが作成されます.
  • request:HTTP要求は、現在のHTTP request内でのみ有効である新たなbeanを生成する.
  • session:HTTP要求は、現在のHTTP session内でのみ有効である新たなbeanを生成する.
  • global-session:この属性はHTTP Sessionのみに使用され、sessionの役割領域とは異なり、全てのSessionが一つのBeanのインスタンスを共有する.
  • @Componentと@Beanの違いは何ですか?
    @Component注解はクラスに作用しますが、@Bean注解は方法に作用します.@Componentは、一般に、クラスパススキャンによって自動的に検出され、Spring容器に自動的に組み立てられる.@Bean注釈は、一般的に私たちが注釈を付けた方法でこのbeanを生成することを定義しています.@BeanはSpringに対して、これはある種類の例です.私はこれを使う必要があるときに返してください.
    Spring MVCについて知っていますか?
    MVCはデザインモードで、Spring MVCは優れたMVCフレームです.Spring MVCはより簡潔なWeb層の開発を助けてくれます.Springフレームワークと統合されて生まれました.Spring MVCではバックエンドプロジェクトをService層(処理業務)、Dao層(データベース操作)、Entity層(実体類)、Controller層(コントロール層、データをフロントページに返す)に分けます.
    SpringMVCの仕事原理(重点)について話します.
    原理は下図の通りです.
    流れの説明(重要):
  • クライアント(ブラウザ)が要求を送信し、DispatcherServletに直接要求する.
  • DispatcherServletは、要求情報に従ってHandlerMappingを呼び出し、解析要求に対応するHandlerを呼び出す.
  • は、対応するHandler(つまり、私たちが普段話しているControllerコントローラ)に解析した後、HandlerAdapterアダプタによる処理を開始する.
  • HandlerAdapterは、Handlerに従って、真のプロセッサオープン処理要求を呼び出し、対応するトラヒックロジックを処理する.
  • プロセッサは、トラフィックを処理した後、ModelAndViewオブジェクトに戻り、Modelは戻りデータオブジェクトであり、Viewは論理的なViewである.
  • ViewResolverは、論理Viewに従って実際のViewを検索する.
  • DispaterServletは、戻ってきたModelViewに伝えます.
  • は、Viewを要求者(ブラウザ)
  • に返信する.
    Springフレームにはどのようなデザインパターンが使われていますか?
    ソース解析:Springデザインモデルのソース解析
  • 工場モード:Springは工場モードを使用してBeanFactoryApplicationContextを通じてbeanオブジェクトを作成する.
  • プロキシモード:Spring AOP機能の実現.
  • シングルケースモード:SpringのBeanはデフォルトでは一例です.
  • テンプレート方法モード:SpringにおけるjdbcTemplatehibernateTemplateなどのTemplateで終わるデータベース動作のクラスは、テンプレートモードに使用される.
  • 装飾器モード:私たちのプロジェクトは複数のデータベースに接続する必要があります.また、顧客が訪問するたびに必要に応じて異なるデータベースにアクセスします.このモードはお客様のニーズに応じて、異なるデータソースを動的に切り替えることができます.
  • 観察者モード:Springイベント駆動モデルは観察者モードの古典的な応用である.
  • アダプターモード:Spring AOPの拡張または通知(Advice)はアダプタモード、spring MVCにもアダプタモード適応Controllerを使用しています.
  • 参照
    Spring面接のまとめ