小弟疑惑不解,实在不懂。struts2+spring+hibernate的整合的框架中,所以的bean都交给spring
管理。那么我想问问,由于spring默认对管理的对象是一个ioc容器中单例存在。
那么action,service,dao这三层的对象 哪些应该用单例...哪些层的对象又该用多例。为什么?
请知道的大叔,大神回答下

解决方案 »

  1.   

    根据需求来的,,默认都是单例的,注入的时候通过scope控制单例还是多例。。
      

  2.   

    action是要多例的,因为他说有状态的,如果是单例,a用户可以访问到b用户的信息,service一般是没状态的是单例,dao也是单例的。
      

  3.   

    其实我觉得实体类不需要让spring管理,实体一般都是多例的
      

  4.   

    service,dao如果是单例的话,那么是不是容器中就只有一个对象,这样的话,假如两个用户同时来访问一个方法,这个时候,A得到了这个单例对象,那么b呢?b只有等待吗?
      

  5.   

    service,dao如果是单例的话,那么是不是容器中就只有一个对象,这样的话,假如两个用户同时来访问一个方法,这个时候,A得到了这个单例对象,那么b呢?b只有等待吗?同一个对象,相等。
      

  6.   

    service,dao如果是单例的话,那么是不是容器中就只有一个对象,这样的话,假如两个用户同时来访问一个方法,这个时候,A得到了这个单例对象,那么b呢?b只有等待吗?同一个对象,相等。
    不是啊 我要表达的意思是,这个对象a用户在操作,那么b用户怎么办?
      

  7.   

    一个请求,开一个线程,struts框架做一个action对象这个没得说啊多例
    dao里面都是一些功能逻辑,无关数据,也无关线程安全。一般写成工厂单例
      

  8.   

    spring需要多例的时候可以多例 scope=prototype
      

  9.   

    service,dao如果是单例的话,那么是不是容器中就只有一个对象,这样的话,假如两个用户同时来访问一个方法,这个时候,A得到了这个单例对象,那么b呢?b只有等待吗?同一个对象,相等。
    不是啊 我要表达的意思是,这个对象a用户在操作,那么b用户怎么办?
    设置多例就不用考虑