JAVA SSMフレーム基礎面接試験問題


SSM(Spring+Sprigmvc+Mybatis)フレーム面接問題
一、Springの面接問題
1、Springはssmの中でどんな役割をしますか?
  • Spring:軽量フレーム
  • 役割:ビーン工場は、ビーンのライフサイクルとフレームワークの集積を管理するために使用されます。
  • の大きなコア:1、IOC/DI(制御反転/依存注入):dao依存をservice層に注入し、service層をaction層に反転させ、Springトップ容器はBenFactoryである。2、AOP:切断面向けプログラミング
  • 2、Springの事務?
  • プログラミング式事務管理:プログラミング方式管理事務、極めて柔軟性が高く、メンテナンスが難しい。
  • 宣言式事務管理:業務コードと事務管理を分離し、注釈とxml構成で事務を管理することができます。
  • 3、IOCのプロジェクトでの役割は?
  • 役割:Iocはオブジェクト間の依存問題を解決し、すべてのBeanの依存関係をプロファイルまたは注釈によって関連づけて、結合度を低減した。
  • 4、Springのプロファイルの内容は?
  • オープントランザクション注釈駆動
  • 事務管理器
  • は注釈機能をオンにし、スキャンパケット
  • を構成する。
  • 構成データベース
  • は、SQLセッション工場、別名、マッピングファイル
  • を構成する。
  • Dao層の実現クラスを作成しなくてもいいです。
    5、Springの注釈?
  • 登録:@Controller@Service@Component
  • 注入:@Autowired@Resource
  • 要求住所:@Request Mapping
  • ジャンプではなく、特定のデータタイプを返します。@ResponseBody
  • 6、Spring DIの3つの方式は?
  • コンストラクション注入:構造方法により
  • を初期化する。
    <constructor-arg index="0" type="java.lang.String" value="  ">constructor-arg>
    
  • setter方法注入:setter方式による初期化
  •  <property name="id" value="1111">property>
    
  • インターフェース注入
  • 7、Springは主にどんなパターンを使いますか?
  • 工場モデル:各ビーンの作成方法
  • シングルケースモード:デフォルトの各ビーンのスコープは、単一例
  • である。
  • プロキシモード:Aopについての実装は、プロキシモード
  • を介して行われる。
    8、IOC、AOPの実現原理は?
  • IOC:反射機構によるオブジェクト注入
  • の生成
  • AOP:ダイナミックエージェント
  • 二、SpringMvc面接問題
    1、SpringMvcのコントローラは単一の例のモードではありませんか?もし、何か問題があれば、どう解決しますか?
  • 問題:ワンケースモードで、マルチスレッドアクセス時にスレッドセキュリティ問題があります。
  • 解決方法:同期を使わないでください。コントローラの中で文字を書いてはいけません。

  • 2、SpringMvcにおけるコントローラの注釈?
  • @Controller:この注釈は、コントローラの役割を演じる
  • を示しています。
    3、@Request Mappingの注釈はクラスの作用に使いますか?
  • 作用:1つのURLを1つのクラスまたは1つの特定の処理方法にマッピングするための
  • 4、フロントの複数のパラメータ、これらのパラメータはいずれもオブジェクトです。
  • 方法:このオブジェクトを直接方法で宣言すると、SpringMvcは自動的に属性をこのオブジェクトに割り当てます。
    5、SpringMvcの関数の戻り値?
    String、ModelAndView、List、Setなどの一般的なString、Ajax要求は、Listセットに戻ります。
    6、SpringMvcの転送とリダイレクト?
  • 転送:return:「ハロー」
  • リダイレクト:return:「redirect:hello.jsp」
  • 7、Spring MvcとAjaxの相互呼び出し?
    JackSonフレームを通してjavaの中のオブジェクトを直接js識別可能なjsonオブジェクトに変換します。具体的な手順は以下の通りです。
  • 加入JackSon.jar
  • は、プロファイルにjsonのマッピング
  • を配置する。
  • Ajaxを受け入れる方法の中で直接Objectに戻ります。listなど、方法の前に注釈@ResonseBody
  • を加えなければなりません。
    8、スプリングMvcのワークフロー図?
    9、Struts 2とSpringMvcの違いは?
  • 入り口が違います。
  • Struts 2:filterフィルタ
  • SpringMvc:Servlet、フロントエンドコントローラ
  • 開発方式が違います。
  • Struts 2:クラス開発に基づいて、クラスを通してパラメータを伝達する属性は、多例
  • にしか設定できません。
  • SpringMvc:方法開発(1つのurl対応の1つの方法)に基づいて、要求パラメータが方法のモダリティに伝達され、一例としても多くの例(提案の一例)
  • であってもよい。
  • 要求方式が違います。
  • Struts 2:値スタック村塾の要求と応答のデータは、ONLを通じてデータにアクセスする
  • SpringMvc:パラメータ解析器によってrequestがコンテンツ解析を要求し、方法に値を形成し、データとビューをModelAndViewオブジェクトにパッケージし、最後にModelAndViewのモデルデータをrequestドメインを通じてページに転送し、jspビュー解像器はデフォルトでjstlを使用します。
  • 三、Mybatisの面接問題
    1、IbatisとMybatis?
  • Ibatis:2010年、apacheのIbatisフレームワークは更新を停止し、googleチームに移行し、MyBatisと改名しました。2010年からIbatisは更新されていません。完全に孤児の枠になりました。誰も守ってくれないフレームはmybatisにビーチで撮られます。
  • Mybatis:Ibatisのアップグレードバージョンです。
  • 2、Mybatisのインターフェースバインドとは何かメリットがありますか?
    MybatisはDAOインターフェースとxmlマッピングファイルとのバインディングを実現しました。自動的にインターフェースの具体的な実現を生成してくれます。使いやすくなります。
    3、どのような場合に注解を使いますか?
  • 注釈使用状況:Sql文が簡単な場合
  • xmlバインディング使用状況:xmlバインディング(@RequestMapを使用してxmlファイルをバインディング)
  • 4、Mybatisコア処理クラスの名前は何ですか?
    Sql Session
    5、クエリーテーブル名と返却エンティティBeanオブジェクトが一致しない場合、どう処理しますか?
    キーのペアをマップすればいいです。
    <result column="title" property="title" javaType="java.lang.String"/>
    
  • column:データベース内のテーブルの名前
  • property:エンティティBeanの属性名
  • 6、Mybatisのメリット?
  • Sql文をJavaから独立させる。
  • は、最下層のJDBCをカプセル化し、APIの呼び出しを行い、結果セットを自動的にJavaBeanオブジェクトに変換し、Javaデータベースプログラミングの反復動作を簡略化することができる。
  • 自分でSql文を書いて、もっと柔軟です。
  • は、オブジェクトパッケージング(またはmapパッケージ)を必要とせずに、@Param注
  • を使用する。
    7、Mybatisはペアが多いですか?
    <collection property="topicComment" column="id" ofType="com.tmf.bbs.pojo.Comment" select="selectComment" />
    
  • property:属性名
  • column:共通列
  • offype:セット中の要素のタイプ
  • select:接続するクエリー
  • 8、Mybatisのペアを設定しますか?
    <association property="topicType" select="selectType" column="topics_type_id" javaType="com.tmf.bbs.pojo.Type"/>
    
  • property:属性名
  • select:接続するクエリー
  • column:共通列
  • javaType:集合中の要素のタイプ
  • 9、${}と嚓{}の違いは?
  • ドル{}:単純文字列を置換して、{}直接変数の値に変えて、何の変換もしません。これは値を取ってからSQL文をコンパイルします。
  • 菘{}:プリコンパイル処理、sqlの中の33759;氡{}を置換しますか?補足して文を全部コンパイルして、Sql文の注入を防止します。このような値はSQL文をコンパイルしてから値を取ります。まとめ:一般的に_の代わりに撹{}で列を作っています。
    10、前回自動生成されたプライマリキーの値を取得しますか?
    select last _insert_id()
    
    11、Mybatisはどうやってページを分けますか?
  • RowBoundsオブジェクト改ページ
  • は、Sql内に直接書き、物理ページ
  • を有する。
    12、Mybatisの仕事原理?
    原理:
  • Sql Session FactoryBuiderによりmybatis-config.xmlプロファイルからSql Session Factoryを構築する。
  • Sql Session FactoryはSql Sessionを開いて、Sql Sessionのインスタンスを通じてMapperオブジェクトを取得し、MapperマッピングのSql文を実行する。
  • は、データベースのCRUD操作とトランザクションの提出を完了し、Sql Sessionを閉じます。
  • 四、結語
    前に不正確なところがありましたら、よろしくお願いします。同じ志を持っている友達と一緒に勉強して、一緒に進歩して、まずここに更新して、今度また補充します。