Aspect Oriented Programming:面向切面编程
我们的情况是以下情况,又该怎么办? 给所有的类方法添加性能检测,事务控制,该怎么抽取? PerformanceMonitor TransactionManager AOP就是希望将这些分散在各个业务逻辑代码中的相同代码,通过横向切割的方式抽取到一个独立的模块中,让业务逻辑类依然保存最初的单纯。
1 基础案例说明
我们以数据库的操作为例来说明:
获取连接对象 执行SQL(核心业务代码) 如果有异常,回滚事务,无异常则提交事务 关闭连接
上述的几个部署,“2”是核心业务代码,其他都是非核心业务代码,但是我们又必须写 而面向切面编程就是为了解决这样的问题,将这些非核心业务代码进行抽离,这样开发者只需要关注“核心业务代码”即可。 这样开发效率自然提高。 在项目开发中,SpringAOP是非常常用的技能之一,下面我画一个图来说明,spring都做了什么
使用方式一:更加优雅的写法
使用方式二:定义切点,在方法上使用注释调用这个切点
1、先定义个标注
2、对这个标注使用切面,定义切点的方法
3、只要是任何方法前 @标注 即会执行切点方法,达到使用标注执行对应方法的功能