栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java

前言

AOP即面向切面编程。

理解
  • 通常我们项目中除业务功能外,还需要增加一些系统功能,例如日志记录、权限控制、事务管理等,如果用面向对象思想进行开发会造成业务代码的污染,以及大量重复代码散落在各个地方,加大后期维护成本。
  • Spring提供的AOP可以理解为是面向对象的一种补充,它通过运行时动态代理的方式为程序增加统一的功能。AOP的存在不仅提高了代码的复用性及高内聚,同时也降低了代码的耦合性。
  • 简单理解,组成一个切面三要点:
  1. 在哪里切入(例如日志记录等非业务操作在哪些业务代码中执行)。
    bean(sysUserServiceImpl): 匹配指定bean的方法执行
    @within(com.sys.service.sysUserServiceImpl): 匹配指定包名下类中的方法执行
    execution(String com.sys.service.sysUserServiceImpl.addUser(User)): 按照(返回值类型 包名.类名.方法名(参数))细粒度匹配执行
    @annotation(com.sys.common.annotation.Log): 匹配指定注解修饰的方法执行

  2. 什么时候切入(在业务代码执行前还是执行后)
    前置通知(@Before): 方法执行之前执行
    返回通知(@AfterReturning): 方法return之后执行
    异常通知(@AfterThrowing): 方法出现异常之后执行
    后置通知(@After): 又称之为最终通知(finally)
    环绕通知(@Around): 方法执行前以及执行后都要执行、优先级最高

  3. 做哪些事情(例如日志记录、权限校验等)

结束语
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340668.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号