1.織入(Weave)
將切面應(yīng)用于某個(gè)對(duì)象并為該對(duì)象創(chuàng)建代理對(duì)象的過程(分為編譯期,類加載期 和 運(yùn)行期)州叠。
2.切點(diǎn) (pointcut)
切點(diǎn)定義了在何處織入何種代理的何種通知棵红,切點(diǎn)會(huì)匹配通知(advice) 所織入(weave) 的 一個(gè)或者多個(gè)連接點(diǎn)。
3.連接點(diǎn) (join point)
連接點(diǎn)是指在程序執(zhí)行過程中能夠插入切面的位置咧栗,程序中滿足所有切點(diǎn)插入條件的所
有時(shí)機(jī)窄赋,也可以是所有切點(diǎn)的集合。
4.通知(advice楼熄,增強(qiáng))
切面所做的工作叫通知(advice忆绰,也叫 增強(qiáng)),通知定義了切面是什么以及何時(shí)被執(zhí)行可岂。分為5種通知/增強(qiáng)(before前置通知错敢,after后置通知,After-returning后置返回通知缕粹,After-throwing后置異常通知稚茅,Around環(huán)繞通知),定義了增強(qiáng)代碼在何時(shí)執(zhí)行平斩。同時(shí)也描述了切面要完成的工作
5.切面(aspect)
切面是由通知(advice) 和切點(diǎn)(pointcut) 的共同定義的亚享,切點(diǎn)定義了切面切入的位置,通知定義了切入的時(shí)間(通知方式)以及切面要完成的工作绘面。
6.引入(introduction)
向原始類添加新的類和方法欺税。
- 關(guān)于《spring in Action》上對(duì)于這些名詞的解析非常貼切:
假設(shè)電力公司負(fù)責(zé)抄電表的員工會(huì)定期去客戶家里抄送電表數(shù)據(jù),那么每個(gè)房子就會(huì)相應(yīng)的安裝一個(gè)電力表揭璃,但是晚凿,由于城市里面房子太多,所以電力公司會(huì)派不同的員工負(fù)責(zé)不同區(qū)域的電力數(shù)據(jù)抄送瘦馍。那么歼秽,城市里面的所有房子上面的電力表,都會(huì)是某位員工潛在的抄送點(diǎn)(Point)情组,所有這些點(diǎn)可以理解為(Join Point燥筷,連接點(diǎn))。而對(duì)于某位員工來說院崇,公司給他分配的負(fù)責(zé)的區(qū)域肆氓,可以理解為(pointcut,切點(diǎn))亚脆,而抄送的過程可以暫且理解為織入(weave)做院。而最重要的是,需要抄送用電量反饋給電力公司,而且這是主要工作键耕,所以可以理解為(adivce寺滚,通知)。又假設(shè)每個(gè)月的某天進(jìn)行電表的抄送屈雄,可以視作是通知的時(shí)機(jī)村视。而在什么時(shí)間,什么區(qū)域的電表(pointcut)需要完成哪些電量的抄送報(bào)告給公司(adivce)構(gòu)成了抄表員工的主要工作(aspect酒奶,切面)蚁孔。