spring的bean的 scope问题,在service及dao中 什么情况下 必须用prototype呢在sping里 为什么 service和 dao 的bean 的 scope熟悉往往是 默认的 singleton,无状态,在什么情况下才要用prototype呢,请举例说明下,本

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/26 20:06:32
spring的bean的 scope问题,在service及dao中 什么情况下 必须用prototype呢在sping里 为什么 service和 dao 的bean 的 scope熟悉往往是 默认的 singleton,无状态,在什么情况下才要用prototype呢,请举例说明下,本

spring的bean的 scope问题,在service及dao中 什么情况下 必须用prototype呢在sping里 为什么 service和 dao 的bean 的 scope熟悉往往是 默认的 singleton,无状态,在什么情况下才要用prototype呢,请举例说明下,本
spring的bean的 scope问题,在service及dao中 什么情况下 必须用prototype呢
在sping里 为什么 service和 dao 的bean 的 scope熟悉往往是 默认的 singleton,无状态,在什么情况下才要用prototype呢,请举例说明下,
本人 也知道 service 和 dao 和 action不一样,action必须为prototype ,但是我希望有高手 什么情况下 service就不能用 默认的 scope属性了.希望能举例说明,3Q

spring的bean的 scope问题,在service及dao中 什么情况下 必须用prototype呢在sping里 为什么 service和 dao 的bean 的 scope熟悉往往是 默认的 singleton,无状态,在什么情况下才要用prototype呢,请举例说明下,本
先说说单例(Singleton):如果使用单例模式,就说明系统中只有一个实例,这个实例的状态和数据都是共享的. 比如你有一个Class是FoodFactory,里面有一个属性是List foodList,你希望每个请求都能共享到这个list,那么就应该是单例的.或者删除或者添加,操作的都是同个对象的list.
如果是prototype模式, 那么你每个请求过来,都会给你初始化一个FoodFactory,foodList也就不可能共享了.
action使用prototype那是必须的,因为每个请求的参数都不同,返回也不同,是有状态的.也就是说,不能让小一的请求,使用的小二的信息给他返回.
service和dao一般使用singleton, 因为service一般是通过具体的dao来实现他的特定的一些服务. 而对于dao,他所做的事情无非是通过sessionFactory创建session来操作数据库,所以对于每个请求,只要共享他的session就行了. 这过程中无需给service 或者dao传递参数,是没有状态的. 当然如果硬要用prototype也是可以的,只是浪费资源而已.