ioc
- spring整體架構(gòu)
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
在Spring框架中的核心組件只有三個:Core垛贤、Context和Bean挎春。它們構(gòu)建起了整個Spring的骨骼架構(gòu)黍聂,沒有它們就不可能有AOP腹纳、Web等特性功能。
- spring知識細節(jié)
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
- Spring控制反轉(zhuǎn)
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
- IOC容器
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
- IOC容器初始化過程
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
- 注入方式/作用域/生命周期
見講課筆記
aop
- 什么是AOP
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
一種思想诗越,Spring實現(xiàn)了這種思想砖瞧。從和宏觀來看,是在線性的程序中“插入/切入”了某個功能嚷狞】榇伲“插入/切入”的“地方(點)”稱為切點〈参矗“某個功能”稱為通知竭翠。
- AOP重要概念
https://mp.weixin.qq.com/s?__biz=MzU2MTk1NzIxMw==&mid=2247483705&idx=1&sn=f427941a0574794b5c835047efa78451&chksm=fc71910bcb06181da93a4994c45b1f078a76247f210528335d61971a35340e51f192e75b54a5&token=692555136&lang=zh_CN#rd
例如:類A中有一個方法getA,現(xiàn)在要在getA方法執(zhí)行前做一個增強薇搁,并將“增強”的功能寫在B類的getB方法中斋扰,則我們引出一下概念:
- AOP
一種橫切技術(shù)
- 切點
被增強的方法。上述例子中g(shù)etA是切點啃洋。
- 切面
通知所在的類传货,就是切面,切面中可能會有多個通知宏娄。上述例子中问裕,B類是切面。
- 通知
增強的帶部分孵坚,這個部分通常寫到一個方法中粮宛,上述例子getB就是通知貌踏。
- 動態(tài)織入
動態(tài)代理類增強目標類的這個動作,就是動態(tài)織入窟勃。
- 委托類
目標類,上述例子中A類是委托類逗堵。
- 代理類
生成的那個代理類秉氧,可以是靜態(tài)代理,也可以是動態(tài)代理蜒秤。
- 代理方式
JDK代理(要求被代理類必須實現(xiàn)接口汁咏,動態(tài)代理類跟委托類是兄弟關(guān)系),CGLIB代理(不必實現(xiàn)接口作媚,動態(tài)代理類是委托類的子類)攘滩。
- AOP的使用場景
1)聲明式事務(wù)
之所以叫“聲明式事務(wù)”,是相對于編程式事務(wù)而言的纸泡,編程式事務(wù)漂问,例如JDBC手動代碼制定是否開啟事務(wù)、是否提交事務(wù)女揭、是否回滾事務(wù)等都是手工寫代碼寫出來的蚤假,而“聲明式事務(wù)”不需要手工編寫帶,只需要在springxml中配置一個切面和切點即可吧兔,切點就是“需要加事務(wù)控制的”方法磷仰,這是一種實現(xiàn)方式。另外境蔼,還有一個種實現(xiàn)方式灶平,就是在“需要加事務(wù)控制的”方法上使用@Trasactional注解。@Trasactional還可以配置事務(wù)的傳播屬性/行為——本質(zhì)就是Connection對象的使用方式箍土,例如在ABC方法中是否使用同一個connection對象逢享。
2)攔截器
它不依賴web容器。配置在springmvc.xml中而不是配置在web.xml中涮帘。PS:web.xml中只配置J2EE官方組件拼苍,攔截器是“民間組件”。
3)性能監(jiān)控调缨,在方法調(diào)用前后記錄調(diào)用時間疮鲫,方法執(zhí)行太長或超時報警。
4)記錄日志弦叶,在方法執(zhí)行前后記錄系統(tǒng)日志俊犯。
5)權(quán)限驗證,方法執(zhí)行前驗證是否有權(quán)限執(zhí)行當前方法伤哺,沒有則拋出沒有權(quán)限執(zhí)行異常燕侠,由業(yè)務(wù)代碼捕捉者祖。
6)工作流系統(tǒng),工作流系統(tǒng)需要將業(yè)務(wù)代碼和流程引擎代碼混合在一起執(zhí)行绢彤,那么我們可以使用AOP將其分離七问,并動態(tài)掛接業(yè)務(wù)。
獲取更多資源請關(guān)注微信公眾號:AKA程序王