struts的多例模式说明

一、struts的多例模式

默认情况下,struts是多例的,即每个请求过来都会创建一个新的action对象。

二、spring与struts的多例模式

public class LoginAction extends ActionSupport {
    
    @Autowired
    private MyService myService;

    private List<Integer> list = new ArrayList<Integer>();

    @Override

    public String execute() {
        
        myService.print();
        
        list.add(1);
        return LOGIN;
    }
}

上面代码是一个login的action,其中自动注入了MyService对象。

说明:

  1. 虽然struts默认是多例的,但是每个请求过来,重新生成的LoginAction中的myService成员变量都是指向了同一个,这是因为spring bean是单例的。
  2. 成员变量list,在每一个请求过来后都是重新生成的,因为list的生成与spring无关。每次请求过来,struts都会重新生成一个LoginAction对象,list作为成员变量也会重新生成。因此,每次list在add前都为空。
posted @ 2017-09-22 17:54  jennyjj  阅读(341)  评论(0编辑  收藏  举报