BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml") ;
在利用Spring的时候我们经常能要写上边这段代码
但是有些粗心的程序员 会毫无考虑的 在程序中写成上边那样 写的地方无外乎构造函数 或者程序里边用到的地方 殊不知这样写 很可能会造成JVM栈区溢出 原因很简单 new ClassPathXmlApplicationContext("applicationContext.xml") ; 就是给所有的工厂管理BEAN分配内存 而如果上边代码不是单例或者使用该段代码的类不是单例 那就不停的给所配置BEAN分配内存 如果HIBERNATE的SessionFactory也交由SPRING 管理 那么ENTITY就更加耗费内存了
所以好的习惯是 将factory设置为单例模式 或者将使用BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml") ;的类设置为单例 比如如果BeanFactory是依靠WEB.XML初始化的 那么他默认就是单例的