1.config.xml配置文件
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="logBefore" class="com.gc.action.LogBefore"></bean> <bean id="timeBook" class="com.gc.action.TimeBook"></bean> <bean id="logBeforeAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <!-- advice 要加入的代码 --> <property name="advice"> <ref bean="logBefore"></ref> </property> <!--指定do开头的方法 --> <property name="patterns"> <value>.*do.*</value> </property> </bean> <!-- LogBefore --> <bean id="logProxy1" class="org.springframework.aop.framework.ProxyFactoryBean"> <!-- 该配置也可以去掉 --> <property name="proxyInterfaces"> <value>com.gc.action.ITimeBook</value> </property> <!-- 被代理的对象 --> <property name="target"> <ref bean="timeBook"></ref> </property> <!--引入代理配置 --> <property name="interceptorNames"> <list> <value>logBeforeAdvisor</value> </list> </property> </bean> </beans>
2.LogBefore
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
package com.gc.action; import java.lang.reflect.Method; import org.springframework.aop.MethodBeforeAdvice; public class LogBefore implements MethodBeforeAdvice{ @Override public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable { System.out.println("before aop 前"); // TODO Auto-generated method stub } }
3.ITimeBook
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
package com.gc.action; public interface ITimeBook { public void doAudit(String name); }
4.TimeBook
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
package com.gc.action; public class TimeBook implements ITimeBook { @Override public void doAudit(String name) { // TODO Auto-generated method stub System.out.println("laaaaaaaaaaaaa"); } }
5.测试
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
ApplicationContext context=new FileSystemXmlApplicationContext("config-before.xml"); ITimeBook tb=(ITimeBook)context.getBean("logProxy1"); tb.doAudit("xiaox");