引入(Introduction):在不修改类代码的前提下,为类添加新的方法和属性。
在切面中声明一个实现了指定接口的通知对象,并提供一个接口实现类来代表该对象使用。
实现方法在XML的<aop:aspect>标签中 配置<aop:declare-parents 标签 :
<aop:declare-parents types-matching="Aopshili.*Biz(+)" implement-interface="Aopshili.Fit" default-impl="Aopshili.FitImpl" />
解释:
为匹配types-matching属性所匹配的类型拥有一个新parent也就是为所匹配的对象创建一个新的父类。 implement-interface属性为接口路径,default-impl为该接口的实现类。
测试代码:
@Test
public void test(){
Fit biz=super.getBean("aspectBiz");
biz.filter();
}
原先super.getBean("aspectBiz")所获得的对象为AspectBiz类但是这里声明的类为Fit这里测试成功运行,这是因为该类匹配了types-matching的规则所以这里成功运行。