怎么在不使用spring框架中使用aop的功能
发表于:2025-11-10 作者:千家信息网编辑
千家信息网最后更新 2025年11月10日,本篇文章为大家展示了怎么在不使用spring框架中使用aop的功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Spring框架的AOP机制可以让开发者把业务
千家信息网最后更新 2025年11月10日怎么在不使用spring框架中使用aop的功能
本篇文章为大家展示了怎么在不使用spring框架中使用aop的功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Spring框架的AOP机制可以让开发者把业务流程中的通用功能抽取出来,单独编写功能代码。在业务流程执行过程中,Spring框架会根据业务流程要求,自动把独立编写的功能代码切入到流程的合适位置。
spring提供了两种方式的AOP使用
使用xml配置方式

使用注解方式

这里需要注意的是Spring AOP目前仅仅支持方法级别的切面,成员的interception并没有实现。另外,spring aop仅仅是集成框架,并没有参与aop的具体开发。
如果想利用aop的更多功能,或者在不使用spring的框架中使用aop的功能,该怎么办呢?
AspectJ简介
spring aop集成了AspectJ(可以和java编程语言无缝结合的一个面向切面编程的可扩展框架)
AspectJ的使用实例
Eclipse Marketplace安装插件AJDT
创建Aspect工程
创建AspectJ测试类
创建一个切面Aspect文件
.aj文件
运行HelloAspectJDemo的java程序,结果为:
不使用spring的aop功能实现日志输出
第一种
public class TimeBook {undefined private Logger logger = Logger.getLogger(this.getClass().getName()); //审核数据的相关程序 public void doAuditing(String name){undefined logger.log(Level.INFO, name + "开始审核数据..."); System.out.println("审核程序"); logger.log(Level.INFO, name + "审核数据结束..."); }}//TestHelloWorld.javapackage com.gc.test;import com.gc.action.TimeBook;public class TestHelloWorld {undefined public static void main(String[] args){undefined TimeBook timeBook = new TimeBook(); timeBook.doAuditing("张三"); }}第二种:通过面向接口编程实现日志输出
public class TimeBook implements TimeBookInterface {undefined //审核数据的相关程序 public void doAuditing(String name){undefined System.out.println("审核程序"); }}//TimeBookProxy.javapackage com.gc.action;import org.apache.log4j.Level;import org.apache.log4j.Logger;import com.gc.impl.TimeBookInterface;public class TimeBookProxy {undefined private Logger logger = Logger.getLogger(this.getClass().getName()); private TimeBookInterface timeBookInterface; //在该类中针对前面的接口TimeBookInterface编程,而不是针对具体的类 public TimeBookProxy(TimeBookInterface timeBookInterface){undefined this.timeBookInterface = timeBookInterface; } //实际业务处理 public void doAuditing(String name){undefined logger.log(Level.INFO,"开始审核数据 "+name); timeBookInterface.doAuditing(name); logger.log(Level.INFO,"审核数据结束 "+name); }}public class TestHelloWorld {undefined public static void main(String[] args){undefined TimeBookProxy timeBookProxy = new TimeBookProxy(new TimeBook()); timeBookProxy.doAuditing("张三"); }}第三种:使用java的代理机制进行日志输出
public class LogProxy implements InvocationHandler{undefined private Logger logger = Logger.getLogger(this.getClass().getName()); private Object delegate; //绑定代理对象 public Object bind(Object delegate){undefined this.delegate = delegate; return Proxy.newProxyInstance(delegate.getClass().getClassLoader(), delegate.getClass().getInterfaces(),this); } //针对接口编程 public Object invoke(Object proxy,Method method,Object[] args) throws Throwable {undefined Object result = null; try{undefined //在方法调用前后进行日志输出 logger.log(Level.INFO,args[0]+" 开始审核数据..."); result = method.invoke(delegate, args); logger.log(Level.INFO,args[0]+" 审核数据结束..."); }catch(Exception e){undefined logger.log(Level.INFO,e.toString()); } return result; }}//TimeBookInterface.javapackage com.gc.impl;//针对接口编程public interface TimeBookInterface {undefined public void doAuditing(String name);}//TimeBook.javapublic class TimeBook implements TimeBookInterface {undefined //审核数据的相关程序 public void doAuditing(String name){undefined System.out.println("审核程序"); }}//TestHelloWorld.javapublic class TestHelloWorld {undefined public static void main(String[] args){undefined //实现了对日志类的重用 LogProxy logProxy = new LogProxy(); TimeBookInterface timeBookProxy = (TimeBookInterface)logProxy.bind(new TimeBook()); timeBookProxy.doAuditing("张三"); }}上述内容就是怎么在不使用spring框架中使用aop的功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
数据
功能
框架
程序
编程
日志
业务
接口
流程
输出
业务流程
切面
方式
张三
代码
内容
技能
文件
方法
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大型服务器开发框架
阿里云lnmp服务器
odms服务器系统切换不了
按量付费的云服务器有哪些平台
数据库 元组关系演算
钢板几何尺寸测量离线软件开发
软件开发的困境
厦门网络技术开发销售价格
微信小游戏战谷如何选服务器
软件开发专业职校哪个好
永康软件开发
如何调用类中的数据库
数据库授权功能是为了安全吗
恒业网络技术有限公司
王思聪冲炸服务器
ipad免费vpn服务器
网络技术快速发展与保密
xml面向对象数据库实例
网络技术人才短缺
游戏服务器丢包
如何创建中文名称数据库
服务器的功耗
centos7物理服务器安装
方舟找不到非专用主机服务器
软件开发都是二次性收费吗
省计算机三级网络技术
什么是网络安全参数
中国网络安全重大事故
中山营特网络技术有限公司
最新常用数据库技术