aspectJ——类属性访问切点捕获
2016-08-15 17:56
197 查看
aspectJ——类属性访问切点捕获
Person.javapackage aspectjtest; public class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void say(){ System.out.println("i am a person"); } }PersonAspect.aj
public aspect PersonAspect { pointcut persontest() : call(void aspectjtest.Person.say()); before() : persontest(){ System.out.println("aspect person--------before"); } pointcut constructAspect() : call(aspectjtest.Person.new()); before():constructAspect(){ System.out.println("Person class Construct"); } pointcut getNamePointcut() : get(String aspectjtest.Person.name); before():getNamePointcut(){ System.out.println("----- before get name"); } after() returning(String value):getNamePointcut(){ System.out.println("-----after get name,the name is " + value ); } pointcut setNamePointcut(String newValue) : set(String aspectjtest.Person.name) &&args(newValue); before(String newValue):setNamePointcut(newValue){ System.out.println("----- before set name and the newValue is " + newValue); } after(String newValue) :setNamePointcut(newValue){ System.out.println("-----after set name,the name is " + newValue ); } }
测试程序:
package aspectjtest; public class MyClass { public void foo(int number,String name){ System.out.println("inside foo(int,String)" + number + '\t' + name); } public void test(int number,String name){ System.out.println("inside test(int,String)" + number + '\t' + name); } public static void main(String[] args){ Person p = new Person(); p.setName("xueyou"); System.out.println(p.getName()); /*Person p2 = new Student(); p2.say();*/ } }运行结果:
相关文章推荐
- python 直接访问类的私有属性或方法
- 利用反射访问私有属性、调用私有方法
- Java复习总结:Java面向对象程序设计—异常的捕获及处理、包及访问控制权限
- 解决自定义AuthorizeAttribute实现授权管理,AllowAnonymous属性失效导致无法匿名访问控制器的问题
- 2013级C++第12周(春)项目——成员的访问属性、多重继承 【项目2 - 教师兼干部类】
- 用户ID,组ID 文件访问权限,文件与进程属性浅析
- 正在预备Revit几何属性访问以及对象间关系的专题讲座
- Java反射的三种实现方式,访问私有方法和私有属性
- 如何实现Windows系统Users组用户可修改IP属性和限制Users组用户访问文件的权限!
- 第八章El表达式第二节el表达式访问4种范围属性
- Flash AS3中调试组件时出错------无法访问空对象引用的属性或方法。
- PHP实现在对象之外访问其私有属性private及保护属性protected的方法
- JAVA动态访问类方法和属性
- 应用程序中的所有线程都可以访问方法中的公用字段。要同步对公用字段的访问,您可以使用属性替代字段,并使用 ReaderWriterLock 对象控制访问。为此,请按照下列步骤操作:
- 通过对象访问原型添加属性
- 原则1:始终能的使用属性(property),而不是可直接访问的Data Member
- aspectJ对于继承类的方法捕获call(Signature)——能够自动处理
- 面向对象--07属性访问的魔法方法
- iOS私有属性的访问与修改
- 黑马程序员_对象、类、属性、访问修饰符