我正在尝试使我的动作类单例。重点是让动作类成为 MVC 模式中的真正控制器。特别是在实现 REST 控制器时,控制器的范围可以扩展到应用程序的生命周期。与 Spring 框架一样,控制器默认设置为默认作用域,Spring 中的默认作用域是单例。
Struts 2 也有一个默认作用域,它也是单例的。我想将我的操作类放到这个范围内,并将它们从值堆栈中删除。
如何修改 Struts 2 框架以使我的操作像 Spring 中的控制器?我知道我可以将操作类的管理委托给 Spring,但我不能使用默认范围,并且 Struts 2 容器仍在继续运行。我无法从框架中删除它,因为它不可插入。
因此,在 Spring 和 Struts2 容器中四处走动,我无法将我的动作类设为单例,因为 Struts 2 实例化并将它们放入ValueStack
.
这是我的问题:
如果我选择 Struts 2 和 Spring 之间的容器将我的动作类置于默认范围内,我怎么能告诉 Struts 2 框架不要将它们置于ValueStack
?