Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SpringDI:使用aop代理为继承类创建会话vise对象_Spring_Struts2 - Fatal编程技术网

SpringDI:使用aop代理为继承类创建会话vise对象

SpringDI:使用aop代理为继承类创建会话vise对象,spring,struts2,Spring,Struts2,在我的项目中,我使用了struts2和spring。弹簧仅用于DI。我的所有动作都是由会话创建的,因此通过SpringDI创建模型bean。现在我想为我的类使用继承,该类将通过基于aop的代理生成,并且它将是每个会话的继承。编码如下 <bean id="common.EshopDefaultAction" class="com.common.actions.EshopDefaultAction" scope="session" > <property name="s

在我的项目中,我使用了struts2和spring。弹簧仅用于DI。我的所有动作都是由会话创建的,因此通过SpringDI创建模型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>

我强烈建议您不要在每个会话中创建操作,而是围绕S2的设计方式工作。如果用户打开多个选项卡和/或窗口,它也可能会中断。DAO不会是单例的吗?如果没有aop:scoped proxy,它能工作吗?@dave-在每个会话中创建操作的最初想法是节省内存。我的操作包含许多模型对象,我不希望每个请求都创建这些对象。也许这看起来很愚蠢。保持DAOs会话智能化的想法是为了保护多用户访问。如果我的想法是错误的,请指导我。@Roman-是的,它在没有aop:scoped proxy的情况下工作,但没有获得所需的行为。Spring在创建EshopDefaultAction和IndexAction时为categoryDAO注入了不同的对象。@BhaveshKhatri如果Spring配置不完整或不适当,那么使用Spring会话范围的操作和DAO的原因是什么,这些操作和DAO很容易破坏您的环境?
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?