此配置可能导致异常的问题是什么?
java.lang.IllegalStateException: Cannot create scoped proxy for bean 'scopedTarget.testProxy': Target type could not be determined at the time of proxy creation.
<bean id="test" class="com.testsession.Test" scope="prototype" />
<bean id="testProxy" class="org.springframework.aop.framework.ProxyFactoryBean" scope="session">
<property name="target" ref="test" />
<property name="proxyInterfaces"><value>com.testsession.TestIface</value></property>
<aop:scoped-proxy/>
</bean>
会话范围的mvc控制器请求testProxy
bean。这不是proxyInterfaces
属性中指定的目标类型吗?
答案 0 :(得分:2)
你在这里混淆了你的概念 - 你要么使用aop:scoped-proxy
或你提供了一个明确的ProxyFactoryBean
和适当的设置,而不是两者。
使用aop:scoped-proxy
:
<bean id="testProxy" class="com.testsession.Test" scope="session">
<aop:scoped-proxy />
</bean>
明确配置代理bean:
<bean id="test" class="com.testsession.Test" scope="session" />
<bean id="testProxy" class="org.springframework.aop.scope.ScopedProxyFactoryBean">
<property name="targetBeanName" value="test" />
</bean>
请注意,代理配置了目标bean name ,而不是对实际目标bean的引用。