@Component vs @Repository og @Service om våren

1. Introduksjon

I denne raske opplæringen skal vi lære om forskjellene mellom @Komponent, @Repository, @Service merknader, i vårrammen.

2. Vårkommentarer

I de fleste typiske applikasjoner har vi forskjellige lag som datatilgang, presentasjon, service, virksomhet, etc.

Og i hvert lag har vi forskjellige bønner. Enkelt sagt, for å oppdage dem automatisk, Våren bruker klasseskanningskommentarer.

Deretter registrerer den hver bønne i ApplicationContext.

Her er en rask oversikt over noen av disse kommentarene:

  • @Komponent er en generisk stereotype for alle vårstyrte komponenter
  • @Service kommenterer klasser i tjenestelaget
  • @Oppbevaringssted kommenterer klasser ved utholdenhetslaget, som vil fungere som et databaselager

Vi har allerede en utvidet artikkel om disse kommentarene. Så vi vil bare holde fokus på forskjellene mellom dem.

3. Hva er annerledes?

Den største forskjellen mellom disse stereotypene er at de brukes til forskjellig klassifisering. Når vi kommenterer en klasse for automatisk gjenkjenning, bør vi bruke den respektive stereotypen.

La oss nå gå gjennom dem mer detaljert.

3.1. @Komponent

Vi kan bruke @Component på tvers av applikasjonen for å merke bønnene som vårens administrerte komponenter. Våren tar bare opp og registrerer bønner med @Komponent og ser ikke etter @Service og @Oppbevaringssted generelt.

De er registrert i ApplicationContext fordi de selv er merket med @Komponent:

@Komponent offentlig @grensesnitttjeneste {} 
@Component public @interface Repository {} 

@Service og @Oppbevaringssted er spesielle tilfeller av @Komponent. De er teknisk de samme, men vi bruker dem til forskjellige formål.

3.2. @Oppbevaringssted

@OppbevaringsstedSin jobb er å fange utholdenhetsspesifikke unntak og omlegge dem som et av vårens enhetlige ukontrollerte unntak.

For denne våren gir PersistenceExceptionTranslationPostProcessor, som krever å legge til i vår applikasjonssammenheng:

Denne bønnepostprosessoren legger til en rådgiver for alle bønner som er merket med @Oppbevaringssted.

3.3. @Service

Vi markerer bønner med @Service for å indikere at det holder forretningslogikken. Så det er ingen annen spesialitet bortsett fra å bruke den i tjenestelaget.

4. Konklusjon

I denne oppskriften lærte vi om forskjellene mellom @Komponent, @Repository, @Service kommentarer. Vi undersøkte hver kommentar separat med hvilke områder de ble brukt.

Som en konklusjon er det alltid en god ide å velge kommentaren basert på lagkonvensjonene.


$config[zx-auto] not found$config[zx-overlay] not found