根据我的理解,无状态会话bean用于编写业务逻辑.它们无法在实例变量中存储数据,因为它们的实例由多个请求共享.所以他们似乎更像是单身人士课程.但是,区别在于包含为每个请求创建(或从池中重用)无状态会话Bean的单独实例.
谷歌搜索后,我可以找到Java EE规范说他们认为是单线程的原因.但我无法理解为什么指定为单线程?
由于TX Context,SLSB是单线程的,Principal在调用时与bean实例相关联.这些bean是合并的,除非达到最大池大小在单独的线程中处理(依赖于供应商).
如果SLSB设计为线程安全,则每个调用看起来都像servlet doGet/Post,其请求信息包含Tx上下文,安全上下文信息等.因此,至少代码看起来很干净(取决于开发人员).