@DeclarParents 使用AspectJ给目标类统一引入父类,无需手动逐个添加
Introduction 引入[email protected]
用于给符合条件的类统一注入父类
比如,想给dest包下所有的类引入父类
我们现在只定义了两个service,可以看出这里的service没有实现接口。
定义一个接口HelloDao:
定义其实现类HelloDaoImpl:
下面定义切面类:
@DeclarParents注解,两个参数
Value 表明哪些类需要被提供父类
defaultImpl 表明提供的父类默认实现
测试:
可以看出,我们的UserService并没有实现HelloDao,但是我们使用@DeclareParents使得它有了指定的父类接口和实现HelloDao与HelloDaoImpl,并且可以执行父类的方法hello()。
同样的,此时的dest包下的CustomerService也被引入了父类HelloDao