在我的项目中,我使用了 struts2 和 spring。Spring 仅用于 DI。我的所有操作都是由会话创建的,因此通过 spring DI 作为模型 bean。现在我想为我的类使用继承,它将通过基于 aop 的代理生成,它将是每个会话。编码如下。
<bean id="common.EshopDefaultAction" class="com.common.actions.EshopDefaultAction" scope="session" >
<property name="site" ref="master.site" />
<property name="menu" ref="master.menu" />
<property name="indexDAO" ref="common.indexDAO" />
<property name="categoryDAO" ref="master.categoryDAO" />
<property name="productDAO" ref="master.productDAO" />
</bean>
<bean id="common.IndexAction" parent="common.EshopDefaultAction" class="com.common.actions.IndexAction" scope="session">
<property name="indexInfo" ref="common.indexInfo" />
<aop:scoped-proxy />
</bean>
这两个动作都有成对的 setter 和 getter。我想拥有由会话为其所有子级创建的站点、菜单、indexDAO、categoryDAO、productDAO 对象,例如上面显示的 IndexAction。现在它为EshopDefaultAction
和创建不同的对象IndexAction
。
添加<aop:scoped-proxy />
到EshopDefaultAction
bean 定义会产生类似的错误
Invalid property 'targetBeanName' of bean class [com.common.actions.IndexAction]:
Bean property 'targetBeanName' is not writable or has an invalid setter method.
Does the parameter type of the setter match the return type of the getter?