SpringMvc aop before
1.config.xml配置文件

<?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

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

package com.gc.action; public interface ITimeBook { public void doAudit(String name); }
4.TimeBook

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.测试

ApplicationContext context=new FileSystemXmlApplicationContext("config-before.xml"); ITimeBook tb=(ITimeBook)context.getBean("logProxy1"); tb.doAudit("xiaox");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通