java

位置:IT落伍者 >> java >> 浏览文章

spring aop中单独代理和自动代理的设置


发布日期:2024年04月08日
 
spring aop中单独代理和自动代理的设置

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查看

上一篇:struts拦截器使用

下一篇:使用JRockit 5.0运行BEA Workshop/Eclipse