由于这个业务对象是servlet的一个通过spring注入的属性,所以这个业务对象中的公用变量(业务对象的属性),是不是会因为并发线程而出现错误啊?急!!
[该贴被htao于2007-12-09 13:38修改过]
取决于你怎么样使用,servlet其实就类似一个线程类,如果你在servlet类字段声明这个业务对象,就是高危行为了,否则在方法中则没有事情。
无论使用什么高级的IOC如Spring等等,都基本遵循这个底层机制。
那我如何处理啊,用threadLocal处理好吗
也就是说用户的一个请求属于一个线程,而在服务器端却对应一个servlet实例了?原以为一个请求会创建一个servlet实例呢?请各位证实
为什么放在方法里就没事啊?
[该贴被htao于2007-12-10 14:40修改过]
如果在spring容器的bean不是单例的话,每次调用业务对象时,都会sping容器都会产生一个新的bean来注入调用者,不会发生线程问题。如果是单例的话,要看是否同步。
猜你喜欢
本站原创《复杂软件设计之道:领域驱动设计全面解析与实战》