SpringMvc自动代理
自动配置的好处是不需要挨个 实现【org.springframework.aop.framework.ProxyFactoryBean】 ,只需要 advisor 配置和
<bean id="autoProxy" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" /> 代码即可
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="logAfter" class="com.gc.action.LogAfter"></bean> <bean id="timeBook" class="com.gc.action.TimeBook"></bean> <bean id="logAfterAdvisor" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor"> <!-- advice 要加入的代码 --> <property name="advice"> <ref bean="logAfter"></ref> </property> <!--指定do开头的方法 --> <property name="patterns"> <value>.*do.*</value> </property> </bean> <!-- 自动aopd的配置 --> <bean id="autoProxy" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" /> </beans>
2.使用logbefor 后 logafter 后 logaround的advice代码
3.ITimeBook

package com.gc.action; public interface ITimeBook { public void doAudit(String name); public void doCheck(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("this is doAudit"); int m=1/0; } @Override public void doCheck(String name) { // TODO Auto-generated method stub System.out.println("this is doCheck"); } }
5.测试

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