我想让我的动作课单身。重点是在MVC模式中使动作类成为真正的控制器。特别是在实现REST控制器时,控制器的范围可以扩展到应用程序的生命周期。与Spring框架中的情况一样,默认情况下控制器被放置到默认范围,Spring中的默认作用域是单例。
Struts 2也有默认的作用域,而且它也是单例的。我希望将我的操作类放到这个作用域中,并将它们从值堆栈中删除。
我如何修改Struts 2框架,使我的操作像Spring中的控制器?我知道我可以将操作类的管理委托给Spring,但是我不能使用默认范围,Struts 2容器仍然在运行。我不能将它从框架中删除,因为它是不可插拔的。
因此,在Spring和Struts2容器中行走时,我无法使操作类单独出现,因为Struts 2实例化并将它们放到ValueStack中。
这是我的问题:
如果我选择Struts 2和Spring之间的容器将操作类设置为默认范围,我如何告诉Struts 2框架不要将它们放到ValueStack中
发布于 2016-03-07 18:08:31
假设您使用的是XWork的DefaultActionInvocation实现,它是在那里通过init方法完成的。这有点痛苦,因为它是在XWork和S2中的动作代理和动作代理工厂下面分层的。
尽管如此,我在做出这样的更改时会非常犹豫不决;它具有系统范围的含义,基本上与XW/WW/S2的所有内容背道而驰。
(不相关,但单例性质不是定义控制器的内容,而是定义组件的责任。)
https://stackoverflow.com/questions/35802110
复制相似问题