When we need to create multiple instances of a bean, then we use the prototype scope. A prototype scoped bean is mostly used for stateful beans. So, on each and every request, a new instance of the bean will be created by the IoC container. This bean can be injected into another bean, or used by calling a getBean() method of a container.
But, a container does not maintain the record of a prototype bean after initialization. We have to implement a custom BeanPostProcessor to release the resources occupied by the prototype bean. A destroy method of the life cycle is not called in the case of a prototype scope, only initial call-back methods are called for all the objects irrespective of scope:
So far, we have seen Singleton ...