spring基礎面試題
- 什麼是spring?
Spring是個開源框架,它主要是負責技術的整合,它可以整合很多技術。該框架提供IOC和AOP機制,可以有效降低系統元件的耦合度,有利於專案系統的維護和擴充套件。
- 描述一下關於spring的IOC與AOP?
IOC是控制反轉的意思,作用就是物件的建立,不過主要是依賴於spring和配置檔案控制,就不用自己了new物件,這工作由spring容器來幫我們完成。
AOP意思是面向切面程式設計,它是面向物件程式設計(OOP)的延續。它主要是將系統中一些非核心業務提取出來,進行單獨處理。比如事務,日誌,安全等等。
- 使用spring框架的優缺點
優點:
- 使用spring的IOC容器,將物件之間的依賴關係交給spring,降低元件之間的耦合性,讓我們更專注與應用邏輯。
- 可以提供眾多服務,事務管理等。
- AOP的很好支援,方便麵向切面程式設計。
- 對主流的框架提供了很好的整合支援,如hibernate,Mybatis等。
- Spring DI機制降低了業務物件替換的複雜性。
- Spring屬於低侵入,程式碼汙染極低。
- Spring的高度可開放性,並不強制依賴於spring,開發者可以自由選擇spring部分或全部。
缺點:
- Jsp中要寫很多程式碼、控制器過於靈活,缺少一個公用控制器。
- Spring不支援分散式,這也是EJB仍然再用的原因之一。
- 什麼是spring IOC容器?
Spring IOC負責建立物件,管理物件(通過依賴注入),裝配物件,配置物件,並且管理這些物件的整個生命週期。
- Spring有幾種配置方式?
- 基於xml的配置
- 基於註解的配置
- 基於Java的配置
- 介紹一下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。
- 請解釋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註解方式