package Ġcom . trend y ol . k edi at r . spring Ċ Ċ import Ġcom . trend y ol . k edi at r . Dependency Provider Ċ import Ġorg . springframework . context . ApplicationContext Ċ Ċ class ĠK edi at r Spring Bean Provider ( ĊĠĠĠ Ġprivate Ġval Ġapplication Context : ĠApplication Context Ċ ) Ġ: ĠDependency Provider Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġget Single InstanceOf ( clazz : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapplication Context . getBean ( clazz ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġget Sub Types Of ( clazz : ĠClass < T >): ĠCollection < Class < T >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapplication Context . getBean Names ForType ( clazz ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġapplication Context . getType ( it ) Ġas ĠClass < T > Ġ} ĊĠĠĠ Ġ} Ċ }