<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 閱讀(423) 評論(0)  編輯  收藏 所屬分類: 面試題

    主站蜘蛛池模板: 暖暖免费高清日本一区二区三区| 国产精品成人免费视频网站京东 | 亚洲中文字幕无码久久2020| 日韩亚洲一区二区三区| 国产成人高清精品免费软件| 国产啪精品视频网免费| 亚洲一卡2卡3卡4卡5卡6卡| 亚洲av伊人久久综合密臀性色| 无码国产精品一区二区免费式芒果| 国产亚洲视频在线观看网址| JLZZJLZZ亚洲乱熟无码| 午夜成年女人毛片免费观看| 亚洲AV无码专区国产乱码不卡| 免费在线观看污网站| 免费黄色小视频网站| 国产一卡二卡四卡免费| 国产亚洲高清在线精品不卡| 一区二区亚洲精品精华液| 亚洲色大成网站www永久| 日韩精品视频免费在线观看| 在线看片免费不卡人成视频| 国产一卡二卡四卡免费| 亚洲大片免费观看| 在线亚洲v日韩v| 青青青亚洲精品国产| 在线精品亚洲一区二区| 亚洲精品国产日韩| 国产亚洲精品bv在线观看| 在线观看亚洲AV日韩A∨| 亚洲精品第一综合99久久| 亚洲一区二区三区四区视频| MM131亚洲国产美女久久| 久久久久无码专区亚洲av| 亚洲女同成人AⅤ人片在线观看| 国产精品免费观看| 波多野结衣在线免费视频| 免费视频爱爱太爽了| A在线观看免费网站大全| 毛片a级毛片免费观看品善网| 两个人的视频www免费| a级毛片免费全部播放|