SSMのフレームベース

記事のディレクトリ

  1. 何のIoCとDI概説されますか?

  2. DIは、どのように達成することですか?

  3. 説明何AOP(アスペクト指向プログラミング)?

  4. 春Frameworkの豆は、ライフサイクルを説明しましたか?

  5. 原則春AOPが内部で何ですか?

  6. 春は主にどのようなモデルを使用されていますか?

  7. 春は、トランザクションに概説しましたか?

  8. 要求プロセスはどのように対処することであるコアSpringMVCとは何ですか?

  9. そこMyBatisの#との違いは何ですか$プレースホルダを使用して書くことに?
    10.Mybatisのメリット?
    MyBatisのキャッシュと二次キャッシュの11の説明?
    動的SQL 12.MyBatisそれは何を意味するのでしょうか?
    13.Mybatisは簡単に動作します

  10. 何のIoCとDI概説されますか?`
    のIoCは、制御の反転と呼ばれる、制御の反転であり、略称、DI(依存性注入)依存性注入と呼ばれる、IOCは単純な解釈です。
    呼制御権反転は、伝統的に容器に直接プログラムのオブジェクトコードによって制御され、アセンブリは、コンテナ管理オブジェクトアセンブリによって達成されます。いわゆる「制御の反転」は、容器の外側にプログラムコード自体から転送されたコンポーネントオブジェクトの制御の転送は、コンテナは、オブジェクトを作成し、オブジェクト間の依存関係を管理します。
    IOCはハリウッドの原則を体現- 「DOが私を呼んでいない、私たちはあなたを呼び出します」。基本的な原理は、依存性注入のアプリケーションコンポーネントは、リソースまたはその他のコラボレーションオブジェクトが依存を見つけるための責任を負うべきではないということです。Configurationオブジェクト作業が容器の責任である必要があり、ロジックは、コンテナが行われるように、コードのアプリケーションコンポーネントから抽出されたリソースを探す必要があります。
    DIは、動的コンポーネントへの容器の特定の依存性の画像、すなわち、注射のために、コンテナによって決定実行時にコンポーネント間の依存関係、即ち、のIoCのより正確な説明です。


2. DI 是如何实现的?

セッターメソッドによって①依存性注入噴射(噴射設定値)

1つの。
②コンストラクタ注入:コンストラクタによって初期化される

。1つの
③インターフェース注入を達成するには、3つの方法
スプリング支持コンストラクタ注入とセッター注入は、注入が通常必要を注入するように構成されています依存性は、オプションの依存関係のために、それには、引数またはオブジェクトを作成するためのstaticファクトリメソッドを持つクラスのコンストラクタを提供する必要なしに、より良い選択セッターインジェクション、セッター注入パラメータです。
概要:: IoCのオブジェクト間の解決の依存関係、すべての依存関係ビーンへの設定ファイルや注釈仲間を通して、結合度を低減することができます。


3. 解释一下什么叫 AOP (面向切面编程)?

`AOP(Aspect-Oriented Programming)指一种程序设计范型,该范型以一种称为切面(aspect)的语言构造为基础,切面是一种新的模块化机制,用来描述分散在对象、类或方法中的横切关注点(crosscutting concern)`。
4. 阐述 Spring 框架中 Bean 的生命周期?

①春のIoCコンテナは、ビーンの定義を見つけて、Beanのインスタンス化します。
依存性注入Beanの②春のIoCコンテナ。
BeanNameAware Beanのインタフェースを実装する場合③、方法setBeanNameビーンは、IDを渡します。
④豆実装BeanFactoryAwareインターフェイスがたBeanFactoryオブジェクトがsetBeanFactory意志であれば
方法。
豆はBeanPostProcessorインターフェイスを実装している場合⑤、それを呼び出し
postProcessBeforeInitialization方法を。
⑥豆はInitializingBeanインタフェースを実装している場合、それafterPropertySetメソッド呼び出し。
関連するBeanPostProcessorsとBeanオブジェクトがある場合⑦、これらのオブジェクトのpostProcessAfterInitializationが呼び出されます。
⑧とき破壊Beanインスタンス、Beanのメソッド呼び出しを破壊DisposableBeanインタフェースを実装している場合。


5. Spring 里面的 aop的原理是什么 ?

2つのカテゴリに分類AOP実装技術:一つは動的エージェント技術であり、実施形態の使用は、メッセージを傍受し、メッセージが装飾され、代わりに、元のオブジェクトの動作を行う、第二静的製織方法の導入具体的な構文は、コンパイラがコンパイル時に「アスペクト」に関連するコードに織ることができるように、「アスペクト」を作成します。あなたが来て、ストッパーの追加の実行を実行するために必要なコードにリフレクション、傍受法の実行によって動的プロキシオブジェクトを作成します。


6. Spring主要使用了什么模式?

ファクトリーモード:各Beanはの方法によって作成された
シングルトンパターン:各Beanのスコープのデフォルトは、単一の例です
プロキシモード:量Aopについてプロキシモードを通じて達成


7. 简述Spring 中的事务 ?

維持が困難プログラムによるトランザクション管理、優れた柔軟性、:①プログラムによるトランザクション管理。
②宣言的トランザクション管理:サービスコード及びトランザクション管理は、トランザクションを管理するように構成されたアノテーションやXMLを、分離することができます。


8. SpringMVC的核心是什么,请求的流程是怎么处理的 ?

springmvcサーブレット制御フレームワークは、フロントエンドに基づいており、コアは、IOCとAOP(スプリングベースの実装)であります

脳の結合パターンは、要求メモリを処理補完

1は、クライアントはWebサーバにHTTPリクエストを送信し、要求が(web.xmlに指定された)パスマップのDispatcherServlet、ウェブのDispatcherServlet容器への要求と一致する場合は、httpリクエストを解析するウェブサーバ。

図2は、要求を受信した後(URLは、httpメソッド、リクエストヘッダと要求パラメータクッキーなどを含む)情報要求をDipatcherServletとHandlerMappingプロセッサ構成要求(ハンドラ)を発見しました。

3-4のDispatcherServlet HandlerMapping裁量ハンドラ(ハンドラは、特定の処理をカプセル化し)、そして次に特定HandlerAdapterによって特定ハンドラの呼び出しに、対応するハンドラを見つけるための方法。

図5に示すように、ハンドラのデータ処理が完了した後のDispatcherServletへのModelAndView()オブジェクトを返します。

6、ハンドラはのModelAndView()は単に論理ビューで返された実際のビュービューへの論理ビューViewResolverによってDispatcherSevlet、公式見解ではありません。

図7は、モデルによって、DispatcherはのModelAndView最終ショー完全なビューを解析し、クライアントに返さのパラメータを()解析します。


9. MyBatis 中使用 # 和 $ 书写占位符有什么区别 ?

①#入力データが文字列として、入力データが自動的に引用符を追加します
②$入ってくる表示データを直接生成されたSQLを。
注:使用$プレースホルダは、SQLインジェクション攻撃につながる可能性は、場所は、それが代わりに$#を使用する必要がある場合、$#を使用してORDER BY句を書いていない、することができます。


10.Mybatis的好处 ?

JavaからSQL文の独立性を①。
②JDBC、API呼び出しの下をカプセル化し、その結果は自動的にJavaBeanの、作業の簡素化プログラミングのJavaデータベースの複製を変換するように設定することができます。
③、自分のSQL文を記述するより柔軟な。
④参照オブジェクトのカプセル化(またはマップのカプセル化)を使用することなく、使用@Param注釈。


11.简述Mybatis的一级缓存和二级缓存 ?

①レベルのキャッシュはSQLSESSIONレベルのキャッシュです。操作SQLSESSIONデータベース内のオブジェクト内の構成オブジェクトは、キャッシュデータを記憶するデータ構造(ハッシュマップ)を有している必要があります。互いに異なるSQLSESSION間のキャッシュデータ領域(HashMapの)は影響されません。(CRUDなどが、データベースの操作には、キャッシュを空にします)。

②二次キャッシュは動作SQLSESSION同じマッパーSQLステートメントの複数の二次キャッシュの複数SQLSESSION、SQLSESSION横切って二次キャッシュを共有することができる、キャッシュ・レベル・マッパーです。


12.MyBatis 中的动态 SQL 是什么意思 ?

いくつかの複雑なクエリの場合、我々は複数のクエリ条件を指定することもできますが、これらの条件は、あるいは58以上の都市でアパートを探しているように、存在しない場合があり、我々は大きさ、場所や住宅を見つけるために床を指定することも、あってもよいです指定されたエリア、価格、サイズと位置リストを見つけることであろう、そしてあなたは、動的にユーザーが指定した基準に基づいてSQL文を生成する必要があります。
あなたが永続化フレームワークを使用しない場合、我々は独自のSQL文を組み立てる必要があるかもしれませんが、幸いMyBatisのは、この問題を解決するために、動的SQL機能を提供します。主な要素のためのMyBatisの動的SQL:
IF
選択してください/ /それ以外の場合は
TRIM SET のforeachを



13.Mybatis工作原理简述



①SqlSessionFactoryはSqlSessionFactoryBuilderによってMyBatisの-config.xml構成ファイルから構築しました。
②SqlSessionFactorySQLSESSIONオープン、オブジェクトはマッパーSQLSESSION例により得られ、実行されるSQL文マッパーがマッピングされます。
③完全なデータベースのCRUD操作と近いSQLSESSIONにトランザクションを提出します。


公開された33元の記事 ウォンの賞賛0 ビュー845

おすすめ

転載: blog.csdn.net/ninth_spring/article/details/104910712