java aspectj是什么,让我们一起了解一下?
AspectJ是一个基于Java语言的AOP框架,提供了强大的AOP功能,扩展了Java语言,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。
为什么aspectj类型间声明很重要?
AspectJ的类型间声明指的是那些跨越类和它们的等级结构的声明。考虑一下,Java语言中如何向一个一些的类中加入新方法,这需要实现一个特定接口,所有类都必须在各自内部实现接口声明的方法,而使用AspectJ则可以将这些工作利用类型间声明放在一个方面中。这个方面声明方法和字段,然后将它们与需要的类联系。
假设我们想有一个Sreen对象观察Point对象的变化,当Point是一个存在的类。我们可以通过书写一个方面,由这个方面声明Point对象有一个实例字段observers,用来保存所有观察Point对象的Screen对象的引用,从而实现这个功能。
Aspect PointObserving{ Private Collection Point.observers=new ArrayList(); …… } observers字段是私有字段,只有PointObserving能使用。因此,要在aspect中加入方法管理observers聚集。 Aspect PointObserving{ Private Collection Point.observers=new ArrayList(); Public static void addObserver(Point p,Screen s){ p.observers.add(s); } public static void removeObserver(Point p,Screen s){ p.observers.remove(s); } …… }
那么如何使用AspectJ?
模拟一个普通程序:
服务类UserService: public class UserService{ public int addUser(){ System.out.println("模拟添加用户的方法。"); return 20; } public void validateLogin(){ System.out.println("验证用户登录。"); }} 服务类BookServce: public class BookService{ public int addBook(String name,int price){ System.out.println("正在添加图书,书名是:"+name+",价格是:"+price); return 100; }}
以上就是小编今天的分享了,希望可以帮助到大家。