spring拦截器学习小结
为了实现网站的日志管理,研究了几天的spring事务管理终于OK了!两种方法
方法一:实现对目标类进行拦截(对于有接口的类,使用的是Java内部类提供的Proxy;而对于那些不实现接口的类,使用的是cglib库)
xml 代码- <!--?Bean?configuration?-->????<bean?id="businesslogicbean"??
- ???class="org.springframework.aop.framework.ProxyFactoryBean">???????<property?name="proxyInterfaces">??
- ????????<value>IBusinessLogic</value>???????</property>??
- ?????<property?name="target">??????????<ref?local="beanTarget"/>??
- ?????</property>???????<property?name="interceptorNames">??
- ????????<list>?????????????<value>theAroundAdvisor</value>??
- ????????</list>??????????</property>??
- ??</bean>????<!--?Bean?Classes?-->??
- ??<bean?id="beanTarget"?????class="com.safetys.service.UserService"/>??
- ????<!--?Advisor?pointcut?definition?for?around?advice?-->??
- ??<bean?id="theAroundAdvisor"????????class="org.springframework.aop.support.RegexpMethodPointcutAdvisor">??
- ?????<property?name="advice">??????????<ref?local="theAroundAdvice"/>??
- ?????</property>???????<property?name="pattern">??
- ????????<value>.*</value>???????</property>??
- ??</bean>??? ??
- ??<!--?Advice?classes?-->????<bean?id="theAroundAdvice"??
- ??????class="com.safetys.iface.TestBeforeAdvice"/>??
?
方法二:拦截ACTION(我现在用的就是这方法)
xml 代码- <bean?id="actionBeanNameProxyCreator"?? ??class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">?? ??
- <property?name="beanNames"><value>*Action</value></property>?? ??<property?name="interceptorNames">?? ??
- <list>?? ??<value>theBeforeAdvice</value>?? ??
- </li?st>?? ??</property>?? ??
- </bean>? ??<bean?id="theBeforeAdvice"?class="com.safetys.iface.TestBeforeAdvice"/>?