Articles

Introduksjon Til Google Guice FOR DI

Hei,

I Dag skal jeg snakke om Hvordan Du kommer i gang Med Google Guice for avhengighetsinjeksjon i Java. For det første vil jeg introdusere noen begreper om rammen, så skriver vi et enkelt program for å eksemplifisere.

Dependency Injection

som vi har snakket om dette innlegget, er dependency injection (DI) en teknikk for å gi avhengigheter for klienter i stedet for at sistnevnte eksplisitt får dem. DI er i utgangspunktet en måte å oppnå et mer generelt mål som heter dependency inversion principle (DIP), som sier:

i Stedet for avhengig av implementeringer, foretrekker å stole på abstraksjoner.

NÅR du bruker DI, trenger VI en måte å injisere (wire, bind) avhengighetene for klientene som ber om dem.

Når Det Gjelder Java, finnes Det en rekke rammer med muligens fordeler og ulemper, for Eksempel Sveis, Vår, Guice etc.

I dette innlegget bruker Vi Guice, og i et fremtidig innlegg har jeg tenkt Å snakke Om Våren, sannsynligvis i sammenheng med å designe RESTful Apier Med Spring Boot og Spring REST.

Google Guice

Google Guice Er et rammeverk for å automatisere avhengighetsinjeksjon ved å gi en beholder til hvor vi kan kartlegge abstraksjoner og implementeringer. Etter kartleggingen blir avhengighetene automatisk injisert i klienter når de blir bedt om det.

kartleggingen i Guice oppnås ved implementering av com.google.injisere.Modul som normalt gjøres ved å arve fra den abstrakte baseklassen com.google.injisere.AbstractModule.Etter må vi overstyre konfigurasjonsmetoden og stole på en flytende API ved å ringe bind og til metoder for å definere kartleggingen mellom abstraksjonen (parameter for bind) og implementering (parameter for til).

da kan vi injisere avhengighetene ved å annotere avhengighetene dine med com.google.injisere.Injisere.

Til Slutt må Vi få et com.google.injisere.Injektor fra vår tidligere definerte modul, så vi kan nå hente klienten med getInstance-metoden, og dens avhengigheter blir automatisk injisert.

Eksempel

dette eksemplet består av en Del Av Et Java-system som sender logginformasjon om driften. For å forenkle inkluderingen Av Guice i vårt prosjekt, skal Vi bruke Maven som et byggverktøy.

I pom.xml, legg til følgende artefakt For Guice på versjon 4.0 i delen avhengigheter:

<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version></versjon>
</avhengighet>

la oss lage grensesnittet logsender å representere atferd: «sender loggen til noen medium»:

denne tjenesten vil bli brukt av leren klasse som har en referanse til logsender og injeksjonen vil bli gjort av sin konstruktør annotert med @inject:

implementeringen StdoutLogSender vil sende loggen til standard utgangsstrøm, i dette tilfellet konsollen:

nå må vi fortelle guice hvordan man kartlegger logsender til stdoutlogsender, og vi gjør det ved loggingmodule-klassen:

endelig kan vi i hovedklasseprogrammet lage en injektor og sende loggingmodulen til konstruktøren. Da kan vi få en forekomst Av Veksler som vil ha sin avhengighet Av LogSender bundet:

Konklusjon

i denne artikkelen har vi diskutert grunnleggende om hvordan du kommer i gang med Google Guice for automatisering av avhengighetsinjeksjonsoppgaver I Java-programmet. Vi skrev et enkelt program for å eksemplifisere hvordan man definerer kartlegging mellom abstraksjoner og implementeringer og hvordan man injiserer dem i våre kunder.

jeg håper at med Denne grunnleggende oversikten Over Guice kan du fortsette studiene om avhengighetsinjeksjon og hvordan du utvikler kode med lavere koblingsnivå og høyt kohesjonsnivå.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *