五大框架面試簡述

2021-10-04 01:23:19 字數 3797 閱讀 2066

五大框架(springmvc,struts2,spring,mybatis,hibernate)

說說你對springmvc框架的理解?

簡要口述(如果感覺說的少可以在完整答案裡面挑幾條說)

springmvc就是spring框架的乙個模組,它是乙個基於mvc設計思想的前端web層框架,主要作用就是對前端請求進行處理。

完整答案

mvc指的就是model(業務模型)、view(檢視)、controller(控制器)

說說你對struts2框架的理解?

簡要口述(如果感覺說的少可以在完整答案裡面挑幾條說)

struts2,它是乙個基於mvc設計思想的前端web層框架,主要作用就是對前端請求進行處理。他的核心是***.但是他的前端控制器是乙個過濾器

完整答案

struts2,它是乙個基於mvc設計思想的前端web層框架,主要作用就是對前端請求進行處理。他的核心是***.但是他的前端控制器是乙個過濾器. 它的請求攔截是基於類級別,ognl也提供了在struts2裡訪問各種作用域中的資料的簡單方式.大大簡化了獲取資料的**.struts2的執行流程是:

a. 頁面請求傳遞到後台, 首先進入struts2 的核心過濾器 strutsprepareandexecutedfilter .

b. 請求進入到struts2 之後, 會根據請求的路徑到 struts.xml 檔案中根據 package的 namespace 屬性 與 action 的 name 屬性配置到請求處理的action 類.

c. 匹配到對應 action 類的對應方法 , 執行該方法進行業務處理, 處理完畢之後會返回乙個結果檢視(字串).

d. 然後根據返回的結果檢視 , 到struts.xml 中對應的action的result結果集配置中 匹配 對應的檢視頁面(或action).

e. 然後根據 result 的type屬性, **(或重定向) 對應的頁面(或action).

springmvc和struts2兩個框架對比一下.

簡要口述(如果感覺說的少可以在完整答案裡面挑幾條說)

注意:兩個技術已經很多年了,技術非常成熟.使用者群體很大.不能片面的用好與不好來說.只能說適合不適合.因為每個東西都有擅長和不擅長

說說你對spring框架的理解?他的作用是什麼?

簡要口述(如果感覺說的少可以在完整答案裡面挑幾條說)

spring的核心有很多.其中比較主要也是我們常用的就是aop,ioc,di.也就是面向切面程式設計,控制反轉,依賴注入.spring一般是作為容器管理其他框架.例如常見的web層框架(struts2,springmvc)和持久成框架(mybatis,hibernate).一般都由spring來管理

完整答案

(1)aop:面向切面程式設計,將跟業務邏輯沒有關係的**提取出來,在呼叫目標方法之前或者之後執行。常用的場景,事務,日誌,許可權控制,異常處理等方面。

(2)ioc:建立物件的權利,交給spring容器建立。

(3)di:如果乙個物件a需要使用另乙個物件b才能實現某個功能,這時就可以說a物件依賴於b物件,而spring容器在建立a物件時,會自動將a物件需要的b物件注入到a物件中,此過程就是依賴注入。

核心容器:核心容器提供 spring 框架的基本功能。核心容器的主要元件是 beanfactory,它是工廠模式的實現。beanfactory 使用控制反轉 (ioc) 模式將應用程式的配置和依賴性規範與實際的應用程式**分開。

spring 上下文:spring 上下文是乙個配置檔案,向 spring 框架提供上下文資訊。spring 上下文包括企業服務,例如 jndi、ejb、電子郵件、國際化、校驗和排程功能。

spring aop:通過配置管理特性,spring aop 模組直接將面向方面的程式設計功能整合到了 spring 框架中。所以,可以很容易地使 spring 框架管理的任何物件支援 aop。spring aop 模組為基於 spring 的應用程式中的物件提供了事務管理服務。通過使用 spring aop,不用依賴 ejb 元件,就可以將宣告性事務管理整合到應用程式中。

spring dao:jdbc dao 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同資料庫**商丟擲的錯誤訊息。異常層次結構簡化了錯誤處理,並且極大地降低了需要編寫的異常**數量(例如開啟和關閉連線)。spring dao 的面向 jdbc 的異常遵從通用的 dao 異常層次結構。

spring orm:spring 框架插入了若干個 orm 框架,從而提供了 orm 的物件關係工具,其中包括 jdo、hibernate 和 ibatis sql map。所有這些都遵從 spring 的通用事務和 dao 異常層次結構。

spring web 模組:web 上下文模組建立在應用程式上下文模組之上,為基於 web 的應用程式提供了上下文。所以,spring 框架支援與 jakarta struts 的整合。web 模組還簡化了處理多部分請求以及將請求引數繫結到域物件的工作。

spring mvc 框架:mvc 框架是乙個全功能的構建 web 應用程式的 mvc 實現。通過策略介面,mvc 框架變成為高度可配置的,mvc 容納了大量檢視技術,其中包括 jsp、velocity、tiles、itext 和 poi。

說說你對mybatis框架的理解

簡要口述(如果感覺說的少可以在完整答案裡面挑幾條說)

說說你對hibernate框架的理解

簡要口述(如果感覺說的少可以在完整答案裡面挑幾條說)

hibernate是輕量級的持久層解決方案,是乙個關聯式資料庫orm框架, 對jdbc訪問資料庫的**做了封裝.我們可以很容易的對資料庫進行增刪改查操作.

完整答案

hibernate查詢方式?

(1)導航物件圖檢索方式。根據已經載入的物件,導航到其他物件。

(2)oid檢索方式。使用get或者load載入對應的物件

(3)hql檢索方式。

(4)qbc檢索方式。

(5)sql檢索方式。

sql與hql的區別?

(1)sql是直接運算元據庫的

(2)hql是通過操作物件運算元據庫,對大小寫敏感。

一級快取和二級快取的區別?

(1)一級快取是session級別的快取,二級快取是sessionfactory級別的快取。

hibernate中get和load的區別?

get和load都是根據id獲取資料。

(1)get先查詢session中對應id是否有資料,如果有則直接返回,有查詢資料庫,如資料庫中沒有則返回為null;

(2)load方式查詢session中對應id是否有資料,如果沒有生成**物件,查詢資料庫。如沒有對應的id則丟擲異常

hibernate和mybatis對比

簡要口述(如果感覺說的少可以在完整答案裡面挑幾條說)

注意:兩個技術已經很多年了,技術非常成熟.使用者群體很大.不能片面的用好與不好來說.只能說適合不適合.因為每個東西都有擅長和不擅長

1. 在移植性方面hibernate配置一下方言即可.而一般情況下mybatis則需要修改sql語句

2. hibernate是乙個完全的orm框架.完全的物件導向.更符合我們開發者的思維模式.mybatis需要我們手動寫sql語句

3. hibernate的優化成本比較高.因為hibernate的sql語句是自動生成的,所以在優化方面一般的新手無從下手.而mybatis只要修改sql就可以了.更加容易上手

(如果對某乙個框架非常了解.這裡話鋒可以轉向具體的詳細介紹某乙個框架)

追加記錄

mybatis中#{}和${}的區別

#{}是預編譯處理,${}是字串替換。mybatis在處理#{}時,會將sql中的#{}替換為?號,呼叫preparedstatement的set方法來賦值,在處理${}時,就是把${}替換成變數的值。使用#{}可以有效的防止sql注入,提高系統安全性。

最大流五大演算法簡述

網路最大流的演算法共有兩大類5種演算法 總體如下表 n為頂點數,m為弧的數目,u代表各條弧的最大容量 演算法名稱 複雜度演算法概要 一般增廣路演算法 o nmu 採取標號法每次在容量網路中尋找一條增廣路進行增廣 或在殘留網路中每次任意尋找一條增廣路進行增廣 直至不存在增廣路為止。最短增廣路演算法 o...

簡述WordPress的五大優點

剛開了個wordpress分類,打算做個wordpress教程,分享點wordpress優化經驗。wordpress是世界上應用最廣泛的部落格程式,同時也可以作為cms來使用,程式設計客棧國內外不乏wordpress優化企業站 門戶站。wordpress也是我最鍾愛的 程式,選擇wordpress的...

Hibernate五大核心(類 介面)簡述

1 configuration介面的作用是對hibernate進行配置,以及對它進行啟動。載入 hibernate.cfg.xml 並建立乙個sessionfactory物件。2 sessionfactory介面 sessionfactory介面負責初始化hibernate。它充當資料儲存源的 並負...