Spring AOP面向切面编程5:AOP相关概念三:PointCut切点表达式;

(1)本篇博客的代码,基于【Spring AOP面向切面编程2:初识AOP二:AOP初体验;(一个Spring AOP的案例,走了一遍流程)】 中的代码; 

(2)如在【Spring AOP面向切面编程2:初识AOP二:AOP初体验;(一个Spring AOP的案例,走了一遍流程)】中,就使用了切点表达式;

目录

一:切点表达式分析;

二:切点表达式案例;

SpringApplication入口类;

案例1:【Spring AOP面向切面编程2:初识AOP二:AOP初体验;(一个Spring AOP的案例,走了一遍流程)】中的案例;

案例2:只圈定Service类;(这是日常开发中,最常用的形式)

案例3:public可以去掉

案例4:只圈定没有返回值的方法

案例5:只去圈定有返回值,且返回值类型为String的方法

案例6:圈定create开头的方法

案例7:圈定指定格式的参数的方法:只圈定无参数的方法

案例8:圈定指定格式的参数的方法:只捕获有两个参数的方法;(*代表一个参数)

案例9:圈定指定格式的参数的方法:只捕获有两个参数的方法,而且第一参数需要是String类型的;


 

一:切点表达式分析;

说明:(根据上图中的红色箭头,依次描述)

(1)【public】:方法修饰符;因为,大部分目标方法都是public修饰的,所以public可以省略不写;不写public的时候,该位置的默认值就是public;

(2)【*】:方法如果不需要返回值,就写void;如果需要返回值,就写对应的返回值类型;如果需不需要返回值都可以,就写*通配符;

(3)【com.imooc】:切点所描述的范围;这儿意思是,只能是com.imooc包下的;

(4)【..】:包通配符;这儿意思是,只要隶属于com.imooc包下的类,无论是如com.imooc.UserDao类,还是如com.imooc.aop.UserDao的类都在范围内;

(5)【*】:对应了类名;*通配符,表示任意类都可以;

(6)【*】:*通配符,表示任意方法;

(7)【..】:参数通配符,表示去匹配任意形式、不限个数、不限类型的方法;(如,方法重构时,就可以设置这个参数,来指定特定的方法)(在这儿,*代表一个参数;(*,*)表示匹配有两个参数的方法)

上面PointCut表达式整体的意思是:去匹配com.imooc包下的,所有类的所有public修饰的方法;


二:切点表达式案例;

SpringApplication入口类;

package com.imooc.spring.aop;

import com.imooc.spring.aop.dao.UserDao;
import com.imooc.spring.aop.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringApplication {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
        UserService userService = context.getBean("userService
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值