解决方案 »

  1.   

      struts2默认是多利的,但我们开发的时候非得加个scope 设置成单例的,为什么呢? 一直搞不明白
      

  2.   

      struts2默认是多利的,但我们开发的时候非得加个scope 设置成单例的,为什么呢? 一直搞不明白
    有么,我怎么所理解的  默认的是scope="singleton"  至于这个,给你看个东东http://blog.csdn.net/peng658890/article/details/7233718
      

  3.   

      struts2默认是多利的,但我们开发的时候非得加个scope 设置成单例的,为什么呢? 一直搞不明白
    有么,我怎么所理解的  默认的是scope="singleton"  至于这个,给你看个东东http://blog.csdn.net/peng658890/article/details/7233718受教了!
    有个朋友说springmvc做电商项目比struts2性能好,单例的影响会不会很大呢?
      

  4.   

      struts2默认是多利的,但我们开发的时候非得加个scope 设置成单例的,为什么呢? 一直搞不明白
    有么,我怎么所理解的  默认的是scope="singleton"  至于这个,给你看个东东http://blog.csdn.net/peng658890/article/details/7233718
    这个作者连spring的文档都没看过,对spring的理解也完全是错误的,并且肯定没有读过spring的源码。Java里有个API叫做ThreadLocal,spring单例模式下用它来切换不同线程之间的参数。
      

  5.   

    另外补充说一句,单例模式是spring推荐的配置,它在高并发下能极大的节省资源,提高服务抗压能力。spring IOC的bean管理器是“绝对的线程安全”。
      

  6.   

      struts2默认是多利的,但我们开发的时候非得加个scope 设置成单例的,为什么呢? 一直搞不明白
    有么,我怎么所理解的  默认的是scope="singleton"  至于这个,给你看个东东http://blog.csdn.net/peng658890/article/details/7233718
    这个作者连spring的文档都没看过,对spring的理解也完全是错误的,并且肯定没有读过spring的源码。Java里有个API叫做ThreadLocal,spring单例模式下用它来切换不同线程之间的参数。没读过源码的说
      

  7.   

    好像有点明白了,是不是ThreadLocal来解决单例对性能的影响?
      

  8.   


    好像有点明白了,是不是ThreadLocal来解决单例对性能的影响?用ThreadLocal是为了保证线程安全,实际上ThreadLoacal的key就是当前线程的Thread实例。单例模式下,spring把每个线程可能存在线程安全问题的参数值放进了ThreadLocal。这样虽然是一个实例在操作,但是不同线程下的数据互相之间都是隔离的,因为运行时创建和销毁的bean大大减少了,所以大多数场景下这种方式对内存资源的消耗较少,而且并发越高优势越明显。
      

  9.   

    总的来说就是,单利模式因为大大节省了实例的创建和销毁,有利于提高性能,而ThreadLocal用来保证线程安全性。