サービスに側面を注入しようとしています。このサービスでは、従来の方法を使用してプロキシ オブジェクトを作成しています。
必要なすべてのアドバイスのリストを含むタイプ (ProxyFactoryBean) の bean-baseProxy を作成しました。
<bean id="baseProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="interceptorNames">
<list>
<value>methodInvocationAdvice</value>
</list>
</property>
</bean>
次のようなサービスのプロキシを作成しています。
<bean id="singproxy" parent="baseProxy">
<property name="target" ref="singtarget" />
<property name="targetClass" value="com.spring.learning.SingingService"></property>
</bean>
これは機能しませんが、これら2つのプロパティを元に戻して次のように書くと:
<bean id="singproxy" parent="baseProxy">
<property name="targetClass" value="com.spring.learning.SingingService"></property>
<property name="target" ref="singtarget" />
</bean>
驚いたことに、それはうまく機能します。春は豆の注文でいいの?それとも、ProxyFactoryBean の特殊なケースですか? Spring 3.0 で試してみましたが、以前のバージョンでも同じ動作が存在するかどうかはわかりません。