Java 如何在XMLBean配置中继承代理对象
我有一个AOP代理bean,定义如下:Java 如何在XMLBean配置中继承代理对象,java,spring,aop,Java,Spring,Aop,我有一个AOP代理bean,定义如下: <bean id="someService" class="..FactoryBean"> .. <property name="target"> <ref local="target" /> </property> <property name="preInterceptors"><ref local="serviceInterceptors
<bean id="someService" class="..FactoryBean">
..
<property name="target">
<ref local="target" />
</property>
<property name="preInterceptors"><ref local="serviceInterceptors"/></property>
..
</bean>
..
..
目标bean:
<bean id="target" class=".." />
<bean parent="target">
<!-- set some properties -->
</bean>
和目标bean的子级:
<bean id="target" class=".." />
<bean parent="target">
<!-- set some properties -->
</bean>
我想将目标bean更改为匿名bean,但要维护子bean。唯一的问题是将子bean的父属性设置为AOP代理bean继承自工厂bean而不是目标bean。有解决办法吗?不太好,但应该可以:
<bean id="proxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="target">
<bean class="com.foo.bar.ExampleService" />
</property>
</bean>
<bean id="targetSource" factory-bean="proxy" factory-method="getTargetSource" />
<bean id="parent" factory-bean="targetSource" factory-method="getTarget" />
<bean parent="parent" />
Anonymous bean仍将获得一个id,但它将是一个Spring自动生成的id。您想使用目标bean做什么?@andrestefan,我能从不同的XML文件访问匿名bean吗?@paul我想做一些类似于bean parent=“someService”
的事情是否必须指定class属性,那是什么?使目标bean匿名的原因是启用自动连线。否,class
可以省略,因为存在parent
属性。当我尝试自动连接ExampleService
bean时,这会导致一个错误。您的问题是如何从ProxyFactoryBean
中取出目标对象,而实际上目标本身没有显式的bean。您现在提到的关于自动连线是另一回事。对此很抱歉,使用匿名bean的原因是为了启用@Autowired
,而不必更改从目标继承的bean子项。你认为这可能吗?