SpringMvc 面向切面1
1.配置文件

<?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="log" class="com.gc.action.LogAround"></bean> <bean id="timeBook" class="com.gc.action.TimeBook"></bean> <!-- logaround --> <bean id="logProxy" 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>log</value> </list> </property> </bean> </beans>
2.LogAround

package com.gc.action; import org.aopalliance.intercept.MethodInterceptor; import org.aopalliance.intercept.MethodInvocation; public class LogAround implements MethodInterceptor { @Override public Object invoke(MethodInvocation arg0) throws Throwable { // TODO Auto-generated method stub Object result=null; try { System.out.println("aop 之前"); result=arg0.proceed(); return result; } finally{ System.out.println("aop 之后"); } } }
3.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"); } }
4.ITimeBook

package com.gc.action; public interface ITimeBook { public void doAudit(String name); }
5. 测试

ApplicationContext context=new FileSystemXmlApplicationContext("config-aop.xml"); ITimeBook tb=(ITimeBook)context.getBean("logProxy"); 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最大的设计失误
· 单元测试从入门到精通