分享一些Spring經典面試題,供大家參考學習。
1. Spring的Ioc和aop分別是用什麼原理實現的?
主要應用了java的反射技術
2.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 屬性和配置文件加入依賴性(協作對象)。然後可以很容易地在需要時替換具有類似接口的協作對象。
3.如何實現國際化?
國際化:不用修改代碼,就適用於不同的語言國家
本地化:如果要適應一個國家,要修改源代碼
實現過程:
在struts-configxml中用如下標簽說明資源文件名,注意其只是文件名,沒有語言_國家
在資源文件對應的目錄struts中加入適應不同語言、國家的properties文件
ApplicationResources_zh_properties 中國
ApplicationResources_en_USproperties us
如果不是英語要轉碼
native2ascii -encoding gb2312 源 ApplicationResources_zh_Cproperties
在jsp頁面中用
取出信息
4.Spring的BeanFactory與ApplicationContext區別?
ApplicationContext和BeanFacotry相比,提供了更多的擴展功能,但其主要區別在於後者是延遲加載,如果Bean的某一個 屬性 沒有注入,BeanFacotry加載後,直至第一次使用調用getBean方法才會拋出異常;而ApplicationContext則在初始化自身是 檢驗,這樣有利於檢查所依賴屬性是否注入;所以通常情況下我們選擇使用ApplicationContext。
5.說說你對用ssh框架進行開發的理解?
框架:hibernate、spring、struts;
Hibernate 主要用於數據持久化;
Spring 的控制反轉能起到解耦合的作用;
Struts 主要用於流程控制。
6.請解釋什麼是MVC?(設計模式)
A) M----Model 封裝業務數據及業務運算。
B) V-----View 封裝用戶界面。
C) C-----Controller 封裝業務處理流程。
7. MVC的各個部分都有哪些技術來實現?如何實現?
表示層 struts
持久層 hibernate
控制層 spring
也就是最常用的開發框架ssh
8.通過圖,說說你對MVC模型的理解。(企業有可能讓學生畫圖)?
1)首先是展示視圖給用戶,用戶在這個視圖上進行操作,並填寫一些業務數據
2)然後用戶會點擊提交按鈕,來發出請求
3)視圖發出的用戶請求會到達控制器,在請求中包含了想要完成什麼樣的業務功能以及相關的數據。
4)控制器會來處理用戶請求,會把請求中的數據進行封裝,然後選擇並調用合適的模型,請求模型進行狀態更新,然後選擇接下來要展示給用戶的視圖。
5)模型會去處理用戶請求的業務功能,同時進行模型狀態的維護和更新
6)當模型狀態發生改變的時候,模型會通知相應的視圖,告訴視圖它的狀態發生了改變。
7)視圖借到模型的通知後,會向模型進行狀態查詢,獲取需要展示的數據,然後按照視圖本身的展示方式,把這些數據展示出來。
8)接下來就是等待用戶下一步操作,再次從頭輪回了。
Spring中如何配置Hibernate事務 http://www.linuxidc.com/Linux/2013-12/93681.htm
Struts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm
基於 Spring 設計並實現 RESTful Web Services http://www.linuxidc.com/Linux/2013-10/91974.htm
Spring-3.2.4 + Quartz-2.2.0集成實例 http://www.linuxidc.com/Linux/2013-10/91524.htm
使用 Spring 進行單元測試 http://www.linuxidc.com/Linux/2013-09/89913.htm
運用Spring注解實現Netty服務器端UDP應用程序 http://www.linuxidc.com/Linux/2013-09/89780.htm
Spring 3.x 企業應用開發實戰 PDF完整高清掃描版+源代碼 http://www.linuxidc.com/Linux/2013-10/91357.htm
Spring 的詳細介紹:請點這裡
Spring 的下載地址:請點這裡