http://www.blogjava.net/jackfrued/archive/2010/02/27/314060.htmlhtml
1 <aop:aspect> 2 <aop:declare-parents 3 types-matching="com.springinaction.springidol.Performer+" 4 implement-interface="com.springinaction.springidol.Contestant" 5 default-impl="com.springinaction.springidol.GraciousContestant" 6 /> 7 </aop:aspect>
或者用委托代理java
1 <aop:aspect> 2 <aop:declare-parents 3 types-matching="com.springinaction.springidol.Performer+" 4 implement-interface="com.springinaction.springidol.Contestant" 5 delegate-ref="contestantDelegate" 6 </aop:aspect> 7 8 9 <bean id="contestantDelegate" class="com.springidol.GraciousContestant">
目标是 types-matching的类,spring让它实现 implement-interface所指向的接口, 而具体实现则经过default-impl属性来赋予。spring
因此 让 types-matching 的类添加了 接口而且指定了实现。spa
因此从spring容器中拿出来的 performer 对象 能够被强转换成 Contestant 类型的对象。若是调用Contestant的方法必需要强转,由于这些都是spring背后作了不少事情。而不是代码显示地继承了它的接口。.net