看完關(guān)于ioc,bean裝載和aop之后的思考,不知道對不對?
IOC即DI,不必調(diào)用者自己去new被調(diào)用對象,而是通過spring IOC容器把配置好的bean對象注入,可以通過設(shè)置注入即setter方法和構(gòu)造器注入。bean裝載可以通過xml配置設(shè)定,也可以同過設(shè)定掃描路徑,然后通過注解來讓容器識別到要裝載的bean。aop面向切面編程,切面與業(yè)務(wù)是垂直的,不同業(yè)務(wù)往往都要做一些公共的類似的額外操作,在業(yè)務(wù)之前做,或在業(yè)務(wù)之后做,或在業(yè)務(wù)出了異常時做,或者在業(yè)務(wù)前后都要做,甚至這些要做的額外操作要用到業(yè)務(wù)本身的輸入?yún)?shù)和業(yè)務(wù)完成的輸出結(jié)果。比如業(yè)務(wù)一般都得記錄日志,比如涉及數(shù)據(jù)更新的業(yè)務(wù)完成后都得伴隨數(shù)據(jù)庫操作,賬戶各種操作前都要驗證用戶權(quán)限,這些業(yè)務(wù)伴隨的操作往往大致相似,如果每個業(yè)務(wù)都要寫這些操作,特別繁瑣,把這些操作提出來就成了切面,與業(yè)務(wù)分離。xml 和API方式都可以實現(xiàn)aop配置,pointcut是業(yè)務(wù),aspect是切面,它倆怎么交互執(zhí)行,怎么傳參和調(diào)用結(jié)果,都可以通過xml和API方式實現(xiàn)。另外還有配置代理這一塊比較蒙逼。最牛逼的是,之前看得傻了眼那么繁瑣和復(fù)雜的xml,api方式用簡單直觀的aspectj方式竟然能等效實現(xiàn),用的純Java標(biāo)簽,在xml 里設(shè)一下自動代理。不過僅僅@Aspect容器不識別,要加上@Component 才識別。我覺得標(biāo)簽簡直就是福音,差點我就被嚇的放棄了。我以為一輩子就只能寫xml了。orz,求指正不對的地方,小白求指教。。。
2019-09-25
看了你的總結(jié)瞬間懂了點啊,very good!
2019-03-14
哈哈,是這樣的。看來初學(xué)者都會有這種困惑。
2018-10-17
兄弟厲害了!
2018-09-06
一般實際工作中傾向于用注解實現(xiàn),xml配置實現(xiàn)了解就可以
2018-08-07
看完你的總結(jié),還有些懵逼的我瞬間把知識串聯(lián)了。。
2018-04-06
看完你的總結(jié),還有些懵逼的我瞬間把知識串聯(lián)了。。
2018-02-20
總結(jié)的不錯
2017-03-11
怒贊一波
2017-02-26
講道理,總結(jié)得很好!我就直接吸收了哈。贊一個!