熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

spring aop中單獨代理和自動代理的設置

2022-06-13   來源: Java開源技術 

  spring的aop機制提供兩類方式實現類代理一種是單個代理一種是自動代理

  單個代理通過ProxyFactoryBean來實現自動代理通過BeanNameAutoProxyCreator或者 DefaultAdvisorAutoProxyCreator實現

  為了給程序加入日志功能我們采用aop的方式編寫一個日志通知類 comtixafmsserviceserverLogService

  配置文件中添加以下代碼

  

  <!設置日志通知>
<bean id=logAdvisor class=orgspringframeworkaopsupport
RegexpMethodPointcutAdvisor>
<property name=advice>
<bean class=comtixafmsserviceserverLogService/>
</property>
<property name=patterns>
<list>
<value>*insertNadCustomerRealFinance*</value>
</list>
</property>
</bean>

  一采用單個代理方式 (費時費力項目中需要多出加入通知的話不會采用此方式)

  需要在beansxml中添加

  

  <!<bean id=log class=orgspringframeworkaopframework
ProxyFactoryBean>>
<!<property name=proxyInterfaces value=comtixafmsdomainlogic
FinanceInFacade />>
<!<property name=interceptorNames>>
<!<list>>
<!<value>logAdvisor</value>>
<!</list>>
<!</property>>
<!<property name=target>>
<!<ref local=financeInFacade />>
<!</property>>
<!</bean> >

  項目中其他通過注入方式設置FinanceInFacade屬性的bean不能直接注入FinanceInFacade的bean id而要注入代理的bean id此例中就是 log

  

  <bean id=financeInController class=comtixafmswebspring
FinanceInController>
<property name=financeInFacade><ref local=log/></property>
<property name=methodNameResolver ref=methodNameResolver/>
</bean>

  二自動代離方式

  <!——自動代理——>

  <bean class=orgspringframeworkaopframeworkautoproxyDefaultAdvisorAutoProxyCreator/>

  增加此行容器會自動根據通知要匹配的切入點為包含切入點的類創建 代理

  需要注入代理的地方依然按照原來的bean id注入URL查看


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28826.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.