Spring基礎面試

Spring的核心 IOC和AOP
IOC的一個重點是在系統運行中動態的向某一對象提供所需要的的對象.這一點需要DI的實現,比如對象A需要操作數據庫,以前我們需要編寫代碼Connection 對象,有了Spring我們可以直接告訴他,A需要的Connection可以在適當的時候直接創建,再注入到A中.
IOC的工作原理
IOC採用工廠模式,通過讀取application.xml配置文件中的bean標籤,注入IOC容器中,再通過set或者構造方法注入產生Beanfactory,Beanfactory 通過getBean方法獲取對象.
IOC和DI是一回事嗎
IOC(inverse of controller) 控制翻轉 DI(Dependency injection) 依賴注入 是一回事,只不過說的方面不同,IOC講的是控制關係的轉換,以前對象的賦值是由對象自己實現的,現在通過Spring利用反射機制來實現.
依賴注入的方法有什麼
setter注入:通過反射調用setter方法
構造器方法:通過反射調用構造方法
接口注入: 通過接口調用接口中的普通方法
Spring的AOP 使用了aspectJ框架
說說什麼是AOP,AOP的好處,動態代理怎麼理解
AOP (aspect oriented programming) 面向切面編程
AOP的核心是實現動態代理,平常我們常見的是JDK使用innvocationHandle實現,還可以使用cglib來實現.Hibernate和Spring使用了cglib提供的實現.
動態代理實際上的意思是:動態生成代理類,這樣我們可以控制代理類的代碼.代理類的方法都會調用 invacationHandle接口中的invoke方法,這樣的話,我們只要調用代理對象的方法,就會統一跑到invoke方法,然後我們可以在invoke方法對所有的方法做統一的預處理
AOP面向切面編程,是更高的編程思想,OOP側重對象的封裝和提取,AOP側重方面組件,可以理解爲封裝了通用功能組件
Spring的通知類型
前置通知 後置通知 環繞通知 異常通知 環繞通知

Spring的核心類
BeanFactory:產生一個新的實例,可以實現單例模式
負責讀取Bean配置文件管理Bean的加載實例化,維護Bean之間的依賴關係負責Bean的生命週期
BeanWrapper:提供了統一的get 和 set方法
ApplicationContext:提供框架的實現,包括BeanFactory的所有功能
ApplicationContext的FileSystemApplicationContext:從文件系統或URL指定的XML配置 文件創建,參數爲配置文件名或數組
Spring 中Bean的作用域
Singleton prototype request session global session
Spring的事務管理
編程式事務管理 PlantformTransactionManager 這是一個Spring 提供的用於事務管理的基礎接口,其下有一個實現的抽象類AbstractPlantformTransactionnManage,TransactionDefinition 事務屬性定義和TransactionStatus
代表當前事務可以提交回滾
聲明式事務管理
REQUIRED–支持當前事務,如果當前沒有事務,就新建事務
REQUIRED_NEW–新建事務,如果當前存在事務,把當前事務掛起
SUPPORTS–支持當前事務,如果當前沒有事務,就以非事務方式執行
NOT_SUPPORTS–以非事務方式執行操作,如果當前存在事務就把事務掛起
MANDATORY–支持當前事務,如果當前沒有事務,就拋出異常
NEVER–以非事務方式運行,如果存在事務,則拋出異常
NESTED–如果當前存在事務,則在嵌套事務內執行.如果當前沒有事務,則進行與REQUIRED類似的操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章