package Ġcom . github . f rt u . persistence . r 2 dbc . config Ċ Ċ import Ġio . r 2 dbc . spi . Connection Factories Ċ import Ġio . r 2 dbc . spi . ConnectionFactory Ċ import Ġio . r 2 dbc . spi . ConnectionFactory Options Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . context . annotation . Configuration Ċ import Ġorg . springframework . data . r 2 dbc . config . Abstract R 2 dbc Configuration Ċ import Ġorg . springframework . data . r 2 dbc . repository . config . Enable R 2 dbc Repositories Ċ Ċ /** Ċ Ġ* ĠAllow Ġto Ġquickly Ġextend Ġand Ġcustomize ĠR 2 DBC Ġconfiguration . Ċ Ġ* Ċ Ġ* ĠMake Ġsure Ġto Ġannotation Ġyour ĠConfiguration Ġclass Ġwith Ġ: Ċ Ġ* Ġ@ Configuration Ċ Ġ* Ġ@ Enable R 2 dbc Repositories Ċ Ġ* Ċ Ġ* ĠAnd Ġadd Ġa Ġfield Ġto Ġaut ow ire ĠURL Ġ: Ċ Ġ* Ċ Ġ* Ġ@ Value ("\ ${ application . persistence . url }") Ċ Ġ* Ġlateinit Ġvar Ġpersistence Url : ĠString Ċ Ġ*/ Ċ @ Configuration Ċ @ Enable R 2 dbc Repositories Ċ class ĠR 2 dbc Configuration () Ġ: ĠAbstract R 2 dbc Configuration () Ġ{ ĊĠĠĠ Ġ@ Value ("\ ${ application . persistence . url }") ĊĠĠĠ Ġlateinit Ġvar Ġpersistence Url : ĠString ĊĊĠĠĠ Ġ@ Autowired ( required Ġ= Ġfalse ) ĊĠĠĠ Ġvar Ġpersistence Properties : ĠPersistence Properties ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠImplement Ġdefault Ġusage Ġusing Ġ' application . persistence . url ' ĊĠĠĠĠ Ġ* Ġbut Ġcan Ġoverride Ġimplementation Ġto Ġpass Ġanother Ġurl . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġconnection Factory (): ĠConnection Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġpersistence Properties ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpersistence Properties Ġ= Ġpersistence Properties !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpersistence Properties . driver ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconnection Factory ( persistence Properties , Ġpersistence Properties . driver ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" You Ġhave Ġinitialize Ġpersistence Properties :${ persistence Properties } Ġwithout Ġthe Ġdriver Ġproperties Ġ! ĠF allback Ġusing ĠURL !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġconnection Factory ( persistence Url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconnection Factory ( persistence Url : ĠString ): ĠConnection Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Initialize Ġconnection Ġusing Ġurl :${ persistence Url }") ĊĠĠĠĠĠĠĠ Ġreturn ĠConnection Factories . get ( persistence Url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconnection Factory ( persistence Properties : ĠPersistence Properties , Ġdriver : ĠString ): ĠConnection Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Initialize Ġconnection Ġusing Ġdriver :${ driver } Ġand Ġpersistence Properties :${ persistence Properties }") ĊĠĠĠĠĠĠĠ Ġvar Ġoptions Ġ= ĠConnection Factory Options . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. option ( ConnectionFactory Options . HOST , Ġpersistence Properties . host ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. option ( ConnectionFactory Options . PORT , Ġpersistence Properties . port ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. option ( ConnectionFactory Options . DATABASE , Ġpersistence Properties . database ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. option ( ConnectionFactory Options . USER , Ġpersistence Properties . username ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. option ( ConnectionFactory Options . PASSWORD , Ġpersistence Properties . password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. option ( ConnectionFactory Options . DRIVER , Ġdriver ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build (); ĊĠĠĠĠĠĠĠ Ġreturn ĠConnection Factories . get ( options ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( this :: class . java ) Ċ }