package Ġcom . may abot . nlp Ċ Ċ import Ġcom . may abot . nlp . common . injector .* Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ Ċ class ĠInject Test Ġ{ ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Singleton () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinjector Ġ= ĠInject or . create ( listOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Module Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( User Dao :: class . java ). to Class ( User Dao Impl :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠ Ġval Ġdao : ĠUser Dao ? Ġ= Ġinjector . getInstance () !! ĊĠĠĠĠĠĠĠ Ġval Ġdao 2 : ĠUser Dao ? Ġ= Ġinjector . getInstance () !! ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( dao Ġ=== Ġdao 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Singleton 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinjector Ġ= ĠInject or . create () ĊĠĠĠĠĠĠĠ Ġval Ġdao : ĠUser Dao Ġ= Ġinjector . getInstance () !! ĊĠĠĠĠĠĠĠ Ġval Ġdao 2 : ĠUser Dao Ġ= Ġinjector . getInstance ( User Dao Impl :: class . java ) !! ĊĊĠĠĠĠĠĠĠ Ġprintln ( dao ) ĊĠĠĠĠĠĠĠ Ġprintln ( dao 2 ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( dao Ġ=== Ġdao 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmodels Ġ= ĠArrayList < Module >() ĊĊĠĠĠĠĠĠĠ Ġmodels Ġ+= Ġobject Ġ: ĠAbstract Module () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġconfigure () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( Db Service :: class . java ). to Instance ( Mysql Service ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbind ( B iss Service :: class . java ). to Class ( B iss ServiceImpl :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġinjector Ġ= ĠInject or . create ( models ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= Ġinjector . getInstance ( Sprint UI Controller :: class . java ) !! ĊĊĠĠĠĠĠĠĠ Ġcontroller . hi () ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Implemented By ( User Dao Impl :: class ) Ċ interface ĠUser Dao Ċ Ċ @ Singleton Ċ class ĠUser Dao Impl Ġ: ĠUser Dao ĊĊ Ċ interface ĠDb Service Ġ{ Ċ } Ċ Ċ class ĠM ysql Service Ġ: ĠDb Service Ġ{ Ċ Ċ } Ċ Ċ @ Implemented By ( Elastic Search Service :: class ) Ċ interface ĠSearch Service Ċ Ċ class ĠElastic Search Service Ġ: ĠSearch Service Ġ{ Ċ Ċ } Ċ Ċ interface ĠB iss Service Ġ{ ĊĠĠĠ Ġfun Ġshow Service () Ċ } Ċ Ċ @ Singleton Ċ class ĠB iss ServiceImpl ( ĊĠĠĠĠĠĠĠ Ġval Ġdb Service : ĠDb Service , ĊĠĠĠĠĠĠĠ Ġval Ġsearch Service : ĠSearch Service Ċ ) Ġ: ĠB iss Service Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġshow Service () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ( db Service ) ĊĠĠĠĠĠĠĠ Ġprintln ( search Service ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Singleton Ċ class ĠS print UI Controller ( val Ġb iss Service : ĠB iss Service ) Ġ{ ĊĠĠĠ Ġfun Ġhi () Ġ{ ĊĠĠĠĠĠĠĠ Ġb iss Service . show Service () ĊĠĠĠ Ġ} Ċ } ĊĊĊ