Spring IOC source code interpretation