zoukankan      html  css  js  c++  java
  • SpringMVC Controller单例和多例(转)

    首先上测试代码

    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import com.sun.accessibility.internal.resources.accessibility;
    @Controller
    @Scope("prototype")
    public class MyController {
    
        private int i = 0; //非静态
        private static int a=0;//静态
        @RequestMapping("/test1")
        public String toShow(ModelMap model) {
            System.out.println((++i)+"-----"+(++a));
            return "hello";
        }    
    }

    当浏览器第一次访问http://localhost:8080/boot-crm/test1.action

    我们来看控制台和debug输出信息
    注意debug显示的当前controller的id

    再次访问


      从debug提供的信息可以看出多例模式下的controller的id会变化,也就是说2次访问action,springMVC创建了不同的controller.

      当在controller类上去掉@scope(“prototype”),变成默认的单例模式

    访问action

    再次访问


    2次访问的是同一个controller,共享普通成员变量和静态成员变量.

    总结:
      单例模式下共享普通成员变量和静态成员变量,多例模式下普通成员变量不共享静态成员共.
      在开发中,springMVC优先使用单例模式,而且尽量不要在controller中设定成员变量.
      如果要定义成员变量并为成员变量赋值可以配置source.properties,通过读取配置文件为成员变量初始化.


    原文:https://blog.csdn.net/weiha666/article/details/78670644

  • 相关阅读:
    cs11_c++_lab4a
    cs11_c++_lab3
    cs11_c++_lab2
    cs11_c++_lab1
    Oracle 11.2.4.0 ACTIVE DATAGUARD 单实例安装(COPY创建备库)
    无备份恢复(归档模式)
    rman datafile恢复(归档模式)
    GHOST(幽灵)重大漏洞
    Windows Linux 之间rsync同步CODE文件
    Centos 6.5 SNMP客户端安装及配置版本net-snmp-5.7.3
  • 原文地址:https://www.cnblogs.com/myseries/p/10949574.html
Copyright © 2011-2022 走看看