ssh2,ApplicationContext.xml配置文件里prototype和singleton的问题
我以前问过别人,告诉我说控制器用prototype,service和dao用singleton
因为service和dao是无状态的,所以用singleton,而控制器却相反这里我不太明白,
1.这里说的“无状态”是指什么?什么才叫“有状态”?
2.为什么控制器要设置为prototype?如果设置成singleton会怎么样?
3.service设置成了singleton,但是service里用到了HashMap(非线程安全),会不会出问题?穷人分不多,还请各位帮帮忙,多谢了
我以前问过别人,告诉我说控制器用prototype,service和dao用singleton
因为service和dao是无状态的,所以用singleton,而控制器却相反这里我不太明白,
1.这里说的“无状态”是指什么?什么才叫“有状态”?
2.为什么控制器要设置为prototype?如果设置成singleton会怎么样?
3.service设置成了singleton,但是service里用到了HashMap(非线程安全),会不会出问题?穷人分不多,还请各位帮帮忙,多谢了
多重架构的应用 ,Struts的action交给spring来管理,scope 定义成prototype 每次请求对应过来应对应一个action. 服务对象 service dao 不定义 缺省定义singletonbean 里面的 scope 有两种配种,singleton,prototype singleton是单例的。每次 getBean()的时候拿到的是同一个实例。得到的都是同一个对象
prototype 是原型。是一种设计模式,可以想象成每次都创建了一个新的对象。
但如过把某个变量,比如name传到service层,那么service层就有了“状态”了,因为每个线程的name是不一样的,而service层设置的是singleton,这样是不是就有问题了?