package Ġcom . ch . d cs . http . scan 2 Ċ Ċ import Ġch . qos . log back . classic . Level Ċ import Ġch . qos . log back . classic . Logger Ċ import Ġcom . alibaba . druid . pool . Dr uid DataSource Ċ import Ġorg . eh cache . CacheManager Ċ import Ġorg . eh cache . config . builders . Cache Configuration Builder Ċ import Ġorg . eh cache . config . builders . CacheManager Builder Ċ import Ġorg . eh cache . config . builders . Resource Pools Builder Ċ import Ġorg . eh cache . config . units . Memory Unit Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . CommandLine Runner Ċ import Ġorg . springframework . context . annotation . Bean Ċ import Ġorg . springframework . context . annotation . Configuration Ċ import Ġjavax . sql . DataSource Ċ import Ġkotlin . math . log Ċ Ċ @ Configuration Ċ open Ġclass ĠInit Configuration ( ĊĠĠĠ Ġprivate Ġval Ġdb Properties : ĠDb Properties Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Init Configuration :: class . java ) ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġlateinit Ġvar Ġh Repo : ĠD cs H Repository ĊĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġopen Ġfun Ġdo Something (): ĠCommandLine Runner Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCommandLine Runner Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" -------------------------------- -------------- ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( db Properties . aaa ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" count Ġis Ġ${ h Repo . count () }") ĊĊ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġh Repo . findAll ById ( listOf ( 6 5 1 0 2 3 1 0 , Ġ 6 4 9 6 1 2 4 6 )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġl Ġ= Ġh Repo . findAll () Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" count 2 Ġis Ġ${ l . count () }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcache Manager Ġ= ĠCache Manager Builder . new CacheManager Builder (). build () Ġas ĠCache Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Manager . init () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmy Cache Ġ= Ġcache Manager . create Cache ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" my Cache ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCache Configuration Builder . new Cache Configuration Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLong :: class . java ObjectType , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD cs H :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource Pools Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. heap ( 1 0 0 0 0 0 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. off heap ( 1 0 0 0 , ĠMemory Unit . MB ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk ( 2 0 , ĠMemory Unit . MB , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Expiry ( Expiry Policy Builder . no Expiration ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. with SizeOf Max Object Graph ( 5 0 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. with SizeOf Max Object Size ( 5 0 0 , ĠMemory Unit . B ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" start Ġto Ġcache ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġl . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info ( it . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ forEach ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( it . sid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Cache . put ( it . id , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" end Ġto Ġcache ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" count 2 Ġis Ġ${ my Cache . count () }") Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmy Cache . sorted By Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . value . rl Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info ( my Cache . filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . value . fn Ġ== Ġ" 9 C 8 7 2 4 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first (). toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Manager . remove Cache (" my Cache ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcache Manager . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ