<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    自由飛翔

    我在仰望,java之上

    統計

    留言簿(2)

    我關注的blog

    閱讀排行榜

    評論排行榜

    Struts,Spring,Hibernate面試題總結

    (轉載)http://blog.csdn.net/David8631/article/details/2676615 作者:David8631
    Hibernate工作原理及為什么要用?

    原理:

    1.         讀取并解析配置文件

    2.         讀取并解析映射信息,創建SessionFactory

    3.         打開Sesssion

    4.         創建事務Transation

    5.         持久化操作

    6.         提交事務

    7.         關閉Session

    8.         關閉SesstionFactory

     

    為什么要用:

     

    1.    JDBC訪問數據庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的重復性代碼。

    2.    Hibernate是一個基于JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度的簡化DAO層的編碼工作

    3.    hibernate使用Java反射機制,而不是字節碼增強程序來實現透明性。

    4.    hibernate的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。它支持各種關系數據庫,從一對一到多對多的各種復雜關系。

     

    2.   Hibernate是如何延遲加載?

    1.         Hibernate2延遲加載實現:a)實體對象  b)集合(Collection

    2.         Hibernate3 提供了屬性的延遲加載功能

    Hibernate在查詢數據的時候,數據并沒有存在與內存中,當程序真正對數據的操作時,對象才存在與內存中,就實現了延遲加載,他節省了服務器的內存開銷,從而提高了服務器的性能。

    3.   Hibernate中怎樣實現類之間的關系?(如:一對多、多對多的關系)

    類與類之間的關系主要體現在表與表之間的關系進行操作,它們都市對對象進行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-oneone-to-manymany-to-many

    4.   說下Hibernate的緩存機制

    1.         內部緩存存在Hibernate中又叫一級緩存,屬于應用事物級緩存

    2.         二級緩存:

    a)         應用及緩存

    b)        分布式緩存

    條件:數據不會被第三方修改、數據大小在可接受范圍、數據更新頻率低、同一數據被系統頻繁使用、非              關鍵數據

    c)  第三方緩存的實現

    5.   Hibernate的查詢方式

    SqlCriteria,object comptosition

    Hql

    1、  屬性查詢

    2、  參數查詢、命名參數查詢

    3、  關聯查詢

    4、  分頁查詢

    5、  統計函數

     

    6.   如何優化Hibernate

    1.         使用雙向一對多關聯,不使用單向一對多

    2.         靈活使用單向一對多關聯

    3.         不用一對一,用多對一取代

    4.         配置對象緩存,不使用集合緩存

    5.         一對多集合使用Bag,多對多集合使用Set

    6.         繼承類使用顯式多態

    7.         表字段要少,表關聯不要怕多,有二級緩存撐腰

     

    7.   Struts工作機制?為什么要使用Struts

    工作機制:

    Struts的工作流程:

      web應用啟動時就會加載初始化ActionServlet,ActionServlet

      struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象

      ActionServlet接收到一個客戶請求時,將執行如下流程.

        -(1)檢索和用戶請求匹配的ActionMapping實例,如果不存在,就返回請求路徑無效信息;

        -(2)如果ActionForm實例不存在,就創建一個ActionForm對象,把客戶提交的表單數據保存到ActionForm           對象中;

        -(3)根據配置信息決定是否需要表單驗證.如果需要驗證,就調用ActionFormvalidate()方法;

        -(4)如果ActionFormvalidate()方法返回null或返回一個不包含ActionMessageActuibErrors對象,                就表示表單驗證成功;

        -(5)ActionServlet根據ActionMapping所包含的映射信息決定將請求轉發給哪個Action,如果相應的                    Action實例不存在,就先創建這個實例,然后調用Actionexecute()方法;

        -(6)Actionexecute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉發給                               ActionForward對象指向的JSP組件;

        -(7)ActionForward對象指向JSP組件生成動態網頁,返回給客戶;

    為什么要用:

    JSPServletJavaBean技術的出現給我們構建強大的企業應用系統提供了可能。但用這些技術構建的系統非常的繁亂,所以在此之上,我們需要一個規則、一個把這些技術組織起來的規則,這就是框架,Struts便應運而生。

    基于Struts開發的應用由3類組件構成:控制器組件、模型組件、視圖組件

    8.   Strutsvalidate框架是如何驗證的?

    struts配置文件中配置具體的錯誤提示,再在FormBean中的validate()方法具體調用。

    9.   說下Struts的設計模式

    MVC模式:  web應用程序啟動時就會加載并初始化ActionServler。用戶提交表單時,一個配置好的ActionForm對象被創建,并被填入表單相應的數據,ActionServler根據Struts-config.xml文件配置好的設置決定是否需要表單驗證,如果需要就調用ActionFormValidate()驗證后選擇將請求發送到哪個Action,如果Action不存在,ActionServlet會先創建這個對象,然后調用Actionexecute()方法。Execute()從ActionForm對象中獲取數據,完成業務邏輯,返回一個ActionForward對象,ActionServlet再把客戶請求轉發給ActionForward對象指定的jsp組件,ActionForward對象指定的jsp生成動態的網頁,返回給客戶。

    單例模式

    Factory(工廠模式)

    定義一個基類===》實現基類方法(子類通過不同的方法)===》定義一個工廠類(生成子類實例)

    ===》開發人員調用基類方法

    Proxy(代理模式)

    10.              spring工作機制及為什么要用?

     

    1.spring mvc請所有的請求都提交給DispatcherServlet,它會委托應用系統的其他模塊負責負責對請求進行真正的處理工作。

    2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller.

    3.DispatcherServlet請請求提交到目標Controller

    4.Controller進行業務邏輯處理后,會返回一個ModelAndView

    5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象

    6.視圖對象負責渲染返回給客戶端。

    為什么用:

    {AOP 讓開發人員可以創建非行為性的關注點,稱為橫切關注點,并將它們插入到應用程序代碼中。使用 AOP 后,公共服務   (比如日志、持久性、事務等)就可以分解成方面并應用到域對象上,同時不會增加域對象的對象模型的復雜性。

                   IOC 允許創建一個可以構造對象的應用環境,然后向這些對象傳遞它們的協作對象。正如單詞 倒置 所表明的,IOC 就像反      過來的 JNDI。沒有使用一堆抽象工廠、服務定位器、單元素(singleton)和直接構造(straight construction),每一個對象都是用     其協作對象構造的。因此是由容器管理協作對象(collaborator)。

    Spring即使一個AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,只要用 JavaBean屬性和配置文件加入依賴性(協作對象)。然后可以很容易地在需要時替換具有類似接口的協作對象。}



    Gavin

    posted on 2011-08-28 12:41 GavinMiao 閱讀(422) 評論(0)  編輯  收藏 所屬分類: 面試題

    主站蜘蛛池模板: 自拍偷自拍亚洲精品情侣| 24小时日本在线www免费的| 亚洲 综合 国产 欧洲 丝袜| 亚洲日本天堂在线| 毛片免费在线观看网址| 中文字幕 亚洲 有码 在线| 99视频全部免费精品全部四虎| 亚洲国产美女精品久久| 免费在线观看视频网站| 中中文字幕亚洲无线码| 成人au免费视频影院| 亚洲av成人一区二区三区观看在线 | 国产免费资源高清小视频在线观看| 亚洲中文字幕无码av| 欧洲精品免费一区二区三区| 精品久久久久久亚洲综合网| 深夜国产福利99亚洲视频| xxxxx做受大片视频免费| 国产亚洲精午夜久久久久久| 另类免费视频一区二区在线观看 | 国产三级在线观看免费| 日韩在线视精品在亚洲| 久久久久国产成人精品亚洲午夜 | 亚洲成人福利在线| 成年18网站免费视频网站| 色屁屁在线观看视频免费| 中文字幕不卡亚洲| 精品一区二区三区免费毛片爱 | 亚洲日韩AV一区二区三区四区| 最新免费jlzzjlzz在线播放| 女bbbbxxxx另类亚洲| 亚洲AV无码专区电影在线观看| 182tv免费视视频线路一二三| 亚洲一线产品二线产品| 中文字幕亚洲日本岛国片| 最近的中文字幕大全免费8| 亚洲AV无码一区二区乱子仑| 亚洲人成网77777亚洲色| 18禁成年无码免费网站无遮挡| 一区二区三区免费电影| 亚洲毛片无码专区亚洲乱|