Spring學習總結

1.Spring Bean 生命周期

實例化->設置屬性->調用BeranNameAware方法setBeanName->調用beanFactoryAware方法setbeanFactory->調用ApplicationContextAware的setApplicationContext方法->調用BeanPostProcess的前置方法-->調用intializingBean的afterPropertiesSet-->調用定制初始化方法-->調用BeanPostProcess的后置方法-->bean準備就緒-->DisposableBean的destory方法

注意:Spring 只幫我們管理單例模式 Bean 的完整生命周期,對于 prototype 的 bean ,Spring 在創建好交給使用者之后則不會再管理后續的生命周期。

2.IOC容器初始化


容器初始化

3.Spring中Bean的作用域


作用域

4.Spring MVC的工作原理

MVC 是一種設計模式。

MVC流程圖

原理:
客戶端發送請求-> 前端控制器 DispatcherServlet 接受客戶端請求 -> 找到處理器映射 HandlerMapping 解析請求對應的 Handler-> HandlerAdapter 會根據 Handler 來調用真正的處理器開處理請求,并處理相應的業務邏輯 -> 處理器返回一個模型視圖 ModelAndView -> 視圖解析器進行解析 -> 返回一個視圖對象->前端控制器 DispatcherServlet 渲染數據(Moder)->將得到視圖對象返回給用戶

5.Spring中都用到了哪些設計模式?

1.控制反轉(IOC)和依賴注入(DI)

2.工廠設計模式:Spring使用工廠模式通過?BeanFactory、ApplicationContext?創建 bean 對象

3.單例設計模式:Spring 中的 Bean 默認都是單例的。

4.代理設計模式:Spring AOP 功能的實現。

6.Spring 事務中的隔離級別

TransactionDefinition 接口中定義了五個表示隔離級別的常量:

DEFAULT:引用數據庫默認的事務隔離級別,Mysql 默認采用的REPEATABLE_READ隔離級別 Oracle 默認采用的 READ_COMMITTED隔離級別.

READ_UNCOMMITTED:允許讀取尚未提交的數據,可能會導致臟讀、幻讀或不可重復讀

READ_COMMITTED:允許讀取務已經提交的數據,可以阻止臟讀,但是幻讀或不可重復讀仍有可能發生

REPEATABLE_READ:對同一字段的多次讀取結果都是一致的,除非數據是被本身事務自己所修改,可以阻止臟讀和不可重復讀,但幻讀仍有可能發生。

SERIALIZABLE:最高級別,按照ACID的隔離級別,可阻止幻讀、不可重復讀以及幻讀,但會影響性能

7.Spring事務中的事務傳播行為

支持當前事務的情況:

REQUIRED:如果存在則加入該事務;如果沒有,則創建一個新事務;

SUPPORTS:如果存在則加入該事務;如果沒有,則以非事務的方式繼續運行

MANDATORY:如果當前存在事務,則加入該事務;如果當前沒有事務,則拋出異常。

不支持當前事務的情況:

REQUIRES_NEW:創建一個新的事務,如果當前存在事務,則把當前事務掛起。

NOT_SUPPORTED:以非事務方式運行。如果當前存在事務,則把當前事務掛起。

PROPAGATION_NEVER:以非事務方式運行,如果當前存在事務,則拋出異常

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容