面向对象与面向切面

本文详细介绍了面向对象编程(OOP)的核心概念及其三大特性:封装、继承和多态,并探讨了这些特性如何增强程序的安全性和可维护性。同时,文章还深入解析了面向切面编程(AOP),一种用于解决系统级公共问题的技术,如日志记录、事务管理等,通过AOP可以更好地实现代码的解耦和复用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

面向对象编程(OOP)

是一种编程思想,三大特性就是封装继承和多态,封装是将类的属性给私有化,不让外部直接访问,通过setter和getter方法实现外部访问,提高了程序的安全性;程序的扩展性可重用性表现在继承和多态上,子类可以继承父类的方法来实现操作,多态实现父类调用子类的实现方法。这样增强了程序的可维护性


面向切面编程(AOP)

是一种编程范式【思想】,与业务无关,描述的是横切点,提供从另外一个角度来考虑程序结构,将系统的公共功能集中解决,实现解耦;用来完善面向对象编程。


配置AOP

1、引入相关jar包

2、引入Spring的配置文件(有两处aop的内容)


3、注入MyBefore和MyImpl



AOP相关概念
关注点[joinpoint]
通知[Advice]
切面[Aspect]
切入点[Pointcut]
目标对象[Target]
AOP代理
织入[Weaving]:生成代理的过程



AOP的通知类型
before 前置通知
afterThrowing         抛出异常后通知
afterReturn 返回后通知
after 后通知
around 环绕通知


execution切入点表达式

*  匹配任何数量的字符
..  任意数量子包和任意参数
+ 指定类型的子类型,作为后缀放在类型模式后

*
1、表示任意类和包名
2、表示任意方法名
3、表示任意一个类型的参数
..
1、表示任意数量的子包

2、表示任意数量和任意类型的参数


// 表示com.aop的任意包下的任意类任意方法任意参数
execution(* com.aop.*.*.*(*))

// 表示任意多个子包任意类任意方法任意参数
execution(* com..*.*(*))


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值