Spring筆記

1.Spring用到的動(dòng)態(tài)代理分為java動(dòng)態(tài)代理和CGILB動(dòng)態(tài)代理,相同點(diǎn)是都是通過反射機(jī)制創(chuàng)建運(yùn)行時(shí)被代理類,不同是后者不依賴接口,而是創(chuàng)建被代理類的子類。


2.java動(dòng)態(tài)代理的實(shí)現(xiàn)步驟:通過實(shí)現(xiàn)InvocationHandler接口創(chuàng)建自己的調(diào)用處理器;通過Proxy指定類加載器/接口/處理器來創(chuàng)建代理類;通過反射機(jī)制獲得動(dòng)態(tài)代理類的構(gòu)造函數(shù),其唯一參數(shù)類型是調(diào)用處理器接口類型;通過構(gòu)造函數(shù)創(chuàng)建動(dòng)態(tài)代理類實(shí)例,構(gòu)造時(shí)調(diào)用處理器對象作為參數(shù)被傳入。


3.MyBatis主要配置:

properties:驅(qū)動(dòng)類/數(shù)據(jù)庫地址/用戶民密碼

settings:Mybatis底層設(shè)置配置

typeAliases:別名,可繼承BaseTypeHandler自行實(shí)現(xiàn)

environment:

? ? -- transactionManager :實(shí)現(xiàn)TransactionFactory可自行實(shí)現(xiàn)

? ? -- dataSource:數(shù)據(jù)源環(huán)境 POOLED/UNPOOLED/JNDI


4.AOP的描述:

使用動(dòng)態(tài)代理技術(shù),將代碼織入對應(yīng)的流程環(huán)節(jié)中,典型的場景就是數(shù)據(jù)庫事務(wù)物,開發(fā)者不需要關(guān)心異?;貪L和資源關(guān)閉的具體邏輯。

利用@Aspect @Pointcut等注解即可完成AOP開發(fā)。常見功能如埋點(diǎn)和行為統(tǒng)計(jì)。


5.@Transactional失效:

@Transactional底層實(shí)現(xiàn)是AOP技術(shù),因此對于靜態(tài)和非public方法是失效的。

另外,如果事務(wù)方法調(diào)用本類中方法,就不會(huì)產(chǎn)生代理對象,同樣會(huì)使AOP失效。


6.SpringMVC的請求處理流程


7.微服務(wù)架構(gòu)的優(yōu)點(diǎn):

~????易于開發(fā)和維護(hù),一個(gè)服務(wù)關(guān)注一個(gè)功能,業(yè)務(wù)清晰,代碼量少;

~? ? 單個(gè)微服務(wù)啟動(dòng)快;

~? ? 局部修改容易部署,適合快速迭代;

~? ? 技術(shù)棧不受限;

~? ? 便于按需橫向伸縮。

微服務(wù)的缺點(diǎn):

~? ? 運(yùn)維要求高;

~? ? 復(fù)雜性高,系統(tǒng)容錯(cuò)、網(wǎng)絡(luò)延遲、分布式事務(wù)都會(huì)帶來巨大挑戰(zhàn);

~? ? 服務(wù)間通信有性能損耗;

~? ? 重復(fù)勞動(dòng)。


8.微服務(wù)的設(shè)計(jì)原則:單一職責(zé)、服務(wù)自治、輕量級通訊、服務(wù)粒度


9.Eureka:服務(wù)注冊發(fā)現(xiàn)及心跳監(jiān)控;

Ribbon:負(fù)載均衡;

Feign:聲明式Restful調(diào)用(@FeignClient);

Hystrix:實(shí)現(xiàn)微服務(wù)熔斷和超時(shí),結(jié)合Turbine可以做到集群監(jiān)控;

Zuul:微服務(wù)網(wǎng)關(guān);與Nginx配合使用保證高可用性,主要功能:身份認(rèn)證與安全、審查與監(jiān)控、動(dòng)態(tài)路由、壓力測試、負(fù)載分配、靜態(tài)響應(yīng)處理、多區(qū)域彈性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.Spring整體架構(gòu) 1)核心容器(Core Container) Core模塊,主要包含了Spring框架基...
    Sponge1128閱讀 1,258評論 0 1
  • 深入使用 Spring兩種后處理器Bean 后處理器容器后處理器屬性占位符配置器重寫占位符配置器Spring 的自...
    漸丶忘閱讀 1,214評論 0 1
  • 在生活中,監(jiān)控用電量是一個(gè)很重要的功能,但并不是大多數(shù)家庭重點(diǎn)關(guān)注的問題。軟件系統(tǒng)的一些功能就像家里的電表一樣,這...
    yjaal閱讀 639評論 0 3
  • Spring 框架兩大核心機(jī)制(IoC、AOP) IoC(控制反轉(zhuǎn))/ DI(依賴注入) AOP(面向切面編程) ...
    Juntech閱讀 128評論 0 0
  • 一從梅粉褪殘妝,涂抹新紅上海棠。開到荼蘼花事了,絲絲天棘出莓墻。 ...
    桃知鯉閱讀 414評論 2 0

友情鏈接更多精彩內(nèi)容