提到代理,我們可以使用ProxyBeanFactory,并配置proxyInterfaces,target和interceptorNames實現,但如果需要代理的bean很多,無疑會對spring配置文件的編寫帶來繁重的工作
Spring為我們提供了,根據beanName匹配后進行自動代理的解決方法
業務接口
?











?業務實現類A,作為配置文件中的buyBean:
?































?
?業務實現類B,作為配置文件中的sellBean:
?































?
切面通知:
?

















?
配置文件:
其中beanNames為buy*,意味著所有以buy開頭的bean,都被spring容易自動代理,執行相應的切面通知
?













































?
測試代碼:
在測試代碼中,我們的buyBean打印兩條買的信息,sellBean打印兩條賣的信息,可以看到buyBean執行的方法已經進行了切面處理
需要注意的是,如果使用自動代碼,則獲得Spring Bean工廠要用
ApplicationContext ctx=new FileSystemXmlApplicationContext(filePath);
而不能用
BeanFactory factory=new XmlBeanFactory(new FileSystemResource(filePath));
原因我想是因為BeanFactory在初始化時并不實例化單例的Bean,而ApplicationContext則在初始化時候全部實例化了Bean,自動代理需要在初始化時候定義好代理關系
?




















更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
