package Ġcom . github . xsi 6 4 0 . kot boot . core Ċ Ċ import Ġcom . github . xsi 6 4 0 . kot boot . core . boot . ApplicationContext Ċ import Ġcom . github . xsi 6 4 0 . kot boot . core . config . Config Ċ import Ġcom . github . xsi 6 4 0 . kot boot . core . inject . Autowired Ċ import Ġcom . github . xsi 6 4 0 . kot boot . core . inject . Bean Ċ // import Ġcom . github . xsi 6 4 0 . kot boot . core . plugins . initialize Database Ċ import Ġcom . github . xsi 6 4 0 . kot boot . core . plugins . json Ċ import Ġcom . github . xsi 6 4 0 . kot boot . core . plugins . register Routing Ċ import Ġcom . types afe . config . Config Factory Ċ import Ġio . ktor . application .* Ċ import Ġio . ktor . features .* Ċ Ċ // fun Ġmain ( args : ĠArray < String >): ĠUnit Ġ= Ġio . ktor . server . netty . Engine Main . main ( args ) Ċ // Ċ // fun ĠApplication . module ( testing : ĠBoolean Ġ= Ġfalse ) Ġ{ Ċ // ĠĠĠ Ġinstall ( Content Neg otiation ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġjson () Ċ // ĠĠĠ Ġ} Ċ // ĠĠĠ Ġinstall ( Default Headers ) Ċ // ĠĠĠ Ġinstall ( Call Logging ) Ċ // ĠĠĠ Ġregister Routing () Ċ // ĠĠĠ Ġinitialize Database () Ċ //} Ċ // Ċ // fun ĠApplication . config (): ĠConfig Ġ{ Ċ // ĠĠĠ Ġreturn ĠConfig Factory . load (). getConfig (" kot boot ") Ċ //} Ċ class ĠApplication Ġ{ Ċ Ċ } Ċ Ċ @ Bean Ċ class ĠA AA Ġ{ ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġservice A : ĠList < Service A > Ċ Ċ // ĠĠĠ Ġ@ Autowired Ċ // ĠĠĠ Ġlateinit Ġvar Ġservice B : ĠService B Ċ Ċ // ĠĠĠ Ġ@ Config (" test ") Ċ // ĠĠĠ Ġlateinit Ġvar Ġtest : ĠString Ċ } ĊĊ Ċ interface ĠService A Ġ{ ĊĠĠĠ Ġfun Ġtest () Ċ } Ċ Ċ @ Bean Ċ class ĠService A Impl Ġ: ĠService A Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" say Ġa ") ĊĠĠĠ Ġ} Ċ }@ Bean Ċ class ĠService A 2 Impl Ġ: ĠService A Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" say Ġa 2 ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ abstract Ġclass ĠService B Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġtest () Ċ } Ċ Ċ @ Bean Ċ class ĠService B Impl Ġ: ĠService B () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" say Ġb ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġctx Ġ= ĠApplication Context ( array Of (" com . github . xsi 6 4 0 . kot boot ")) ĊĠĠĠ Ġctx . run () ĊĠĠĠ Ġval Ġs Ġ= Ġctx . injector Context . find Bean < AAA >( AAA :: class ) ĊĠĠĠ Ġs . service A . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( it . test ()) ĊĠĠĠ Ġ} Ċ // ĠĠĠ Ġprintln ( s . service B !!. test ()) Ċ // ĠĠĠ Ġprintln ( s . test ) Ċ }