限制连接点的作用域
在定义切入点的时候,我们经常遇到的需求是:基于所关注的程序作用域,限制捕获连接点的范围。
本节将介绍within
以及withincode
的用法。within
可以指定切入点的作用域在包中或者类中,withincode
可以通过方法签名限制连接点的作用域在方法中。
0.捕获特定类中的所有连接点
首先,我们使用within(TypePattern)
切入点来捕获特定类中的所有连接点,它的语法如下:
pointcut [切入点名字](想要获取的参数): within(类名);
要注意的几点:
within(TypePattern)
切入点捕获指定类作用域中的所有连接点。within(TypePattern)
切入点极少单独使用,它通常与其他切入点结合使用,用于减少将要捕获连接点。within(TypePattern)
可以包含通配符,用于选择不同类上的一系列连接点。
我们在Test9
包下进行测试。
首先创建业务类Service
,如下:
package Test9;
public class Service {
protected static String name = "Gavin John";
private String firstname = "Gavin";
private String lastname = "John";
public String getFirstname() {
return fi