Aspectxml配置

<!--    配置注解扫描路径-->
    <context:component-scan base-package="cn.zqwl.Advice"/>
    <!--    创建通知对象-->
    <bean id="userAdvice2" class="cn.zqwl.Advice.UserAdvice"></bean>
    <aop:config>
    <!--        基于aspect方式配置-->
        <aop:aspect ref="userAdvice2">
    <!--        切点配置-->
            <aop:pointcut id="mp" expression="execution(boolean cn.zqwl.Server.UserServer.SearchUserOne(String,String)) and args(username,password)"/>
    <!--            配置通知-->
            <aop:after-returning method="AfterUserLogon" pointcut-ref="mp" returning="result"></aop:after-returning>

        </aop:aspect>

    </aop:config>

注解配置

步骤:

1. 引入依赖的jar包

2. 定义切入点绑定切入点及通知关系

3.在Spring配置类中扫描切入点

注意:该类需要的两个重要注解:

/**
 * @Component
 * 实例化bean
 */
@Component
/**
 * @Aspect
 * 将当前类标识为一个切面供容器读取
 */
@Aspect
*切入点表达式标准格式:动作关键字(访问修饰符  返回值  包名.类/接口名.方法名(参数)异常名)
* 动作关键字:描述切入点的行为动作,例如execution表示执行到指定切入点
* 异常名:方法定义中抛出指定异常,可以省略
* 可以使用通配符描述切入点,快速描述:
*      * :单个独立的任意符号,可以独立出现,也可以作为前缀或者后缀的匹配符出现
*      execution(public * com.itheima.*.UserService.find*(*))
*
*      .. :多个连续的任意符号,可以独立出现,常用于简化包名与参数的书写(用在参数处比较好一点)
*      execution(public User com..UserService.findById(..))
*
书写技巧:
    所有代码按照标准规范开发,否则以下技巧全部失效
    描述切入点通常描述接口,而不描述实现类
    访问控制修饰符针对接口开发均采用public描述(可省略访问控制修饰符描述)
    返回值类型对于增删改类使用精准类型加速匹配,对于查询类使用*通配快速描述
    包名书写尽量不使用..匹配,效率过低,常用*做单个包描述匹配,或精准匹配
    接口名/类名书写名称与模块相关的采用*匹配,例如UserService书写成*Service,绑定业务层接口名
    方法名书写以动词进行精准匹配,名词采用*匹配,例如getById书写成getBy*,selectAll书写成selectAll
    参数规则较为复杂,根据业务方法灵活调整
    通常不使用异常作为匹配规则
获取切入点方法的参数:(参数及不用麻烦使用通配符..代替)
    JoinPoint:适用于前置、后置、返回后、抛出异常后通知
    ProceedJointPoint:适用于环绕通知
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值