对比: Java EE EJB和 Spring Java Bean

抛开Jave EE EJB的remote功能,就 Java EE EJB local范围而言,从bean管理行为看:

java ee sfsb (状态session bean), slsb(无状态 session bean) 分别可以理解为 spring 中  scope为 session 和 prototype的 java bean,

java ee singleton EJB则对应spring 中  scope为 singleton的 java bean.


如果一个bean是prototype的,并且这个bean要被注入到其它bean或者你通过getBean这样的方式

获得这个bean的时候,spring容器会创建一个新的实例给你。 

singleton模式指的是对某个对象的完全共享,包括代码空间和数据空间,也就是说,

singleton会让所有线程共享他的成员变量。prototype则不会这样.

此外singleton的生命周期由容器来管理,但是prototype的生命周期得你自己管理。 

最后,有个小trick,singleton的bean引用一个prototype的bean时会出现问题,因为singleton只初始化一次,

而这时候prototype是不会初始化的。

你可能感兴趣的:(spring,bean,session)