struts中的单例操作和多个示例
行动在Struts2是多元的,其产生的行动,每一次网络地址访问
公共课pr_action {
公共pr_action(){
System.out.println(创造行动成功!!!!!!!!!!!!!!!!!!!;
}
公共空执行(){
}
}
运行代码可以看到每一个对网络地址的访问都会在控制台上导出一次!!!
如果是单个用例,如果两个用户修改对象的属性值,则由于不同的用户修改时间,两个用户将获得不同的属性。手术结果不同。
例如,有一块长300cm布,它可以使一件外套(100cm)和一条裤子(有200cm),A和B的长度是300cm,
A想做一件外套和一条裤子。他首次截获100cm做外衣,然后完成衣服做裤子。然后100cm拿起外套使它。然后,他完成了他的外套和裤子时,他发现剩下的布(100cm)还不足以让裤子。这是对系统性能的影响。解决的办法是给布300cm乙一一个人,所以它不会是偷来的。这也是单实例与多实例之间的区别。
如果你建立一个单一的情况下,那么多个线程共享一个ActionContext和ValueStack中,这样会有一个问题,当并发访问了。
Struts 2动作不多的情况下,这是一个单一的实例,在每个请求产生一个行动的对象,理由是:Struts 2的行动包含数据,例如,你填写页面的数据将包含在行动的成员变量,如果是一个单一的例如,数据会在多线程环境中,彼此的影响为例,这是由人的数据被你看见。所以Struts2动作多模式。
问题是,可以struts2行动变成单一模式当我使用Spring生成操作时,我发现生成的操作都是单一的,这不会让我的程序在默认情况下失效吗最后一个用户提交的信息,如果下一个用户没有填写信息,则转到用户的输入信息。
背景:
1)Struts2会产生针对每个请求动作的实例。
2)由Spring管理的IOC容器的bean默认是单个实例。
首先,从数据安全的问题来看,我们的动作应该保证是多个的,这样就不会出现数据问题,但是如果管理员可以操作某些操作,或者整个工作站共享一些动作来提高性能,那么可以使用单例模式。
幸运的是,Spring的bean可以为每个对象设置范围,所以上面的问题不是问题。在Spring的Action bean配置时,问题结束了。
谢谢你的阅读。我希望你能帮助你,谢谢你对这个站的支持。