Spring 面試題
1. Spring框架有哪些模塊?
Spring框架由七個模塊組成組成,這7個模塊(或組件)均可以單獨存在,也可以與其它一個或多個模塊聯合使用,如下所示:
(1) Spring 核心容器——IoC容器
(2) Spring AOP
(3) Spring ORM
(4) Spring DAO
(5) Spring WEB
(6) Spring上下文(Context)
(7) Spring MVC
2. 為什么要使用Spring框架,它有什么優點?
(1) 輕量級的框架
(2) 非侵入性的
(3) 可以整合其它的框架,比如Struts, Hibernate等
(4) 可以提供事務管理
3.Spring框架的工作機制是什么?
(1) Spring MVC將所有的請求都提交給DispatcherServlet,它會委托應用系統的其它模塊負責對請求進行真正的處理工作。
(2) DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller。
(3) DispatcherServlet請請求提交到目標Controller。
(4) Controller進行業務邏輯處理后,會返回一個ModelAndView。
(5) Dispathcher查詢一個或多個ViewResolver(視圖解析器),找到ModelAndView對象指定的視圖對象。
(6) 視圖對象負責將結果返回給客戶端。
4.怎么使用Spring配置事務 ?
Spring同時支持編程式事務策略和聲明式事務策略,大部分時候都采用聲明式事務策略。
聲明式事務管理的配置方式,通常有以下4種:
(1) 使用TransactionProxyFactoryBean為目標Bean生成事務代理的配置。此方式是最傳統、配置文件最臃腫、最難以閱讀的方式。
(2) 采用Bean繼承的事務代理配置方式,比較簡潔,但依然是增量式配置。
(3) 采用BeanNameAutoProxyCreator,根據Bean Name自動生成事務代理的方式。這是直接利用Spring的AOP框架配置事務代理的方式,需要對Spring的AOP框架有所理解。但這種方式避免了增量式配置,效果非常不錯。
(4) 采用DefaultAdvisorAutoProxyCreator,直接利用Spring的AOP框架配置事務代理的方式,效果非常不錯,只是這種配置方式的可讀性不如第3種方式。