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/>
增加此行容器会自动根据通知要匹配的切入点为包含切入点的类创建代理
需要注入代理的地方依然按照原来的beanid注入URL查看