1. 程式人生 > >spring基礎面試題

spring基礎面試題

  1. 什麼是spring?

Spring是個開源框架,它主要是負責技術的整合,它可以整合很多技術。該框架提供IOC和AOP機制,可以有效降低系統元件的耦合度,有利於專案系統的維護和擴充套件。

  1. 描述一下關於spring的IOC與AOP?

IOC是控制反轉的意思,作用就是物件的建立,不過主要是依賴於spring和配置檔案控制,就不用自己了new物件,這工作由spring容器來幫我們完成。

AOP意思是面向切面程式設計,它是面向物件程式設計(OOP)的延續。它主要是將系統中一些非核心業務提取出來,進行單獨處理。比如事務,日誌,安全等等。

  1. 使用spring框架的優缺點

優點:

  1. 使用spring的IOC容器,將物件之間的依賴關係交給spring,降低元件之間的耦合性,讓我們更專注與應用邏輯。
  2. 可以提供眾多服務,事務管理等。
  3. AOP的很好支援,方便麵向切面程式設計。
  4. 對主流的框架提供了很好的整合支援,如hibernate,Mybatis等。
  5. Spring DI機制降低了業務物件替換的複雜性。
  6. Spring屬於低侵入,程式碼汙染極低。
  7. Spring的高度可開放性,並不強制依賴於spring,開發者可以自由選擇spring部分或全部。

缺點:

  1. Jsp中要寫很多程式碼、控制器過於靈活,缺少一個公用控制器。
  2. Spring不支援分散式,這也是EJB仍然再用的原因之一。
  1. 什麼是spring IOC容器?

Spring IOC負責建立物件,管理物件(通過依賴注入),裝配物件,配置物件,並且管理這些物件的整個生命週期。

  1. Spring有幾種配置方式?
  1. 基於xml的配置
  2. 基於註解的配置
  3. 基於Java的配置
  1. 介紹一下spring的事務管理

事務就是對一系列的資料庫操作(比如插入多條資料)進行統一的提交或回滾操作,如果插入成功,那麼一起成功,如果中間有一條出現異常,那麼回滾之前的所有操作。這樣可以防止出現髒資料,防止資料庫資料出現問題。開發中為了避免這種情況一般都會進行事務管理。Spring中也有自己的事務管理機制,一般是使用TransactionMananger進行管理,可以通過spring的注入來完成此功能。 7. Spring bean的作用域之間有什麼區別?

Spring容器中的bean可以分為5個範圍:  Singleton:這種bean範圍是預設的,這種範圍確保不管接受到多少個請求,每個容器中只有一個bean的例項,單例的模式由bean factory自身來維護。  Prototype:原型範圍與單例範圍相反,為每一個bean請求提供一個例項。  Request:在請求bean範圍內會每一個來自客戶端的網路請求建立一個例項,在請求完成以後,bean會失效並被垃圾回收器回收。  Session:與請求範圍類似,確保每個session中有一個bean的例項,在session過期後,bean會隨之失效。  Global-session:global-session和portlet應用相關。當你的應用部署在portlet容器中工作時,它包含很多portlet。

  1. 請解釋spring Bean的生命週期?

Spring Bean的生命週期簡單易懂。在一個bean例項被初始化時,需要執行一系列的初始化操作已達到可用的狀態。同樣的,當一個bean不在被呼叫時需要進行相關的析構操作,並從bean容器中移除。

Spring bean factory負責管理在spring容器中被建立的bean的生命週期。Bean的生命週期由兩組回撥(call back)方法組成。

初始化之後呼叫的回撥方法。 銷燬之前呼叫的回撥方法。

Spring框架提供了以下四種方式來管理bean的生命週期事件: InitializingBean和DisposableBean回撥介面 針對特殊行為的其他Aware介面 Bean配置檔案中的Custom init()方法的destroy()方法 @PostConstruct和@PreDestroy註解方式