由于为了考虑 线程安全等问题,web
因此尽可能让spring的 bean 是 prototype类型,而不是默认的单例,spring
特别是controller 层,也能够写一个BaseConller 使用ThreadLocal 来获取session ,这种就不须要注解了安全
或者是 使用 容器来 getBean 的时候最好让bean是 prototype 。特别是 在 web.xml 里面新建一个线程的时候session
或者是spring 里面新建线程去操做的时候 ,这样保证了线程安全,不然虽然 能够启动,可是每次关闭有时候会出异常的信息的prototype
可是也不是每一个bean 都用 prototype ,能不能就不用,这样比较高效,并且 使用了 prototype 建立后交由调用者负责销毁对象回收资源线程
singleton 只有一个实例,也急速单例模式xml
prototype 访问一次建立一个实例,至关于new 一个对象了对象