When to use singleton and prototype scope in spring