aop:declare-parents注解

http://www.blogjava.net/jackfrued/archive/2010/02/27/314060.html

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>

 

或者用委托代理

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属性来赋予。

 

所以 让 types-matching 的类添加了 接口并且指定了实现。

所以从spring容器中拿出来的 performer 对象   可以被强转换成 Contestant 类型的对象。如果调用Contestant的方法必须要强转,因为这些都是spring背后做了很多事情。而不是代码显示地继承了它的接口。

posted on 2014-07-28 20:52  wf110  阅读(1695)  评论(0编辑  收藏  举报