Spring框架很好的帮助我们创建和管理dao、bean、service、action等对象,
但是它创建的对象是单例呢还是多例,又有哪些区别以及为什么
1.在Spring中默认创建的是单例模式,简单来说就是节省内存开销
我们都知道每创建一次对象,需要开辟一块内存空间,这个就是多例了,但是这样的话内存开销比较大
如果只创建一个对象,只开辟一块内存空间,所有的用户都共享这个这个对象,这样的设计是不是就很优雅了
2.如果所有的用户都共享一个对象的话,就会有一个很大的问题
每一个用户都有自己私有的信息,这些信息是不能一样的,不能大家都叫同一个名字吧
所以我们在配置applicationContext.xml这个的时候需要加上scope="prototype",每个用户创建不一样的实例
3.这样看来,好像Spring中默认创建的是单例模式是有问题的,我们又能不能既有单例的优点又不影响每个用户的信息
可以的,dao、bean、service这些对象设置成单例的,资源共享,而action对象配置为多例
4.不管是单例还是多例都是为了创建对象,根据实际需求来选择合理搭配
在开发的过程中经常需要读取配置文件的信息,这样的工具类就可以是单例的