Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 16470|Svar: 0

[Kilde] Java annotations@PostConstruct og detaljerede forklaringer og eksempler på @PreDestroy

[Kopier link]
Opslået på 04/04/2019 16.21.12 | | | |
Kort introduktion

Java EE5 introducerer to annotationer, @PostConstruct og @PreDestroy, som virker på servlet-livscyklussen og muliggør brugerdefinerede operationer, før bønnen initialiseres og før den ødelægges. Denne artikel forklarer hovedsageligt @PostConstruct.

API-brugsinstruktioner

Følgende er instruktionerne til brug af @PostConstruct API'en:

PostConstruct-annoteringer bruges på metoder, der skal udføres efter afhængighedsinjektionen er fuldført for at kunne udføre en initialisering. Denne metode skal kaldes, før klassen indsættes i tjenesten. Alle klasser, der understøtter afhængighedsinjektion, skal understøtte denne annotation. Selv hvis klassen ikke anmoder om nogen ressourceinjektion, skal metoden annoteret med PostConstruct kaldes. Der er kun én måde at annotere med denne annotation på. Metoden til anvendelse af PostConstruct-annoteringer skal overholde alle følgende kriterier: metoden må ikke have nogen parametre, medmindre det er tilfældet med en EJB-interceptor, som defineret af EJB-specifikationen, i hvilket tilfælde den vil komme med et InvocationContext-objekt; Returtypen af metoden skal være ugyldig; Metoden må ikke kaste en tjekket undtagelse; Metoden til at anvende PostConstruct kan være offentlig, beskyttet, pakke-privat eller privat; Metoden kan ikke være statisk undtagen for applikationsklienten; Metoden kan være endelig; Hvis metoden kaster en ukontrolleret undtagelse, må klassen ikke placeres i tjenesten, medmindre det er en EJB, der kan håndtere undtagelsen og gendanne den.
Det kan opsummeres således:

  • Der er kun én måde at annotere med denne annotation;
  • Den annoterede metode må ikke have nogen parametre;
  • Den annoterede metode returnerer værdien void;
  • Den annoterede metode må ikke kaste en tjekket undtagelse;
  • Den annoterede metode skal være en ikke-statisk metode;
  • Denne metode udføres kun én gang;


Servlet-eksekveringsflowdiagram

Tilføjelsen af to annotationer vil kun tillade servleten at udføre flowchartet:



Under instansieringsprocessen af en bestemt bønne kaldes den annoterede metode @PostConstruct efter konstruktmetoden og før init-metoden.

Eksempel

Eksekverbare metoder skrevet baseret på Spring boot kan findes på github:https://github.com/HappySecondBrother/example

UserService-metoden (leverer cachede data):

BusinessService-metoden, der kalder UserService ved @PostConstruct:

Udførelsesresultater:

Projektanvendelse

I project@PostConstruct er hovedapplikationsscenariet at indlæse nogle cache-data, når servleten initialiseres.

Noter:

Brugen af denne annotation påvirker starttidspunktet for gudstjenesten. Serveren scanner alle filer i WEB-INF/classes og alle jar-pakker under WEB-INF/lib ved opstart.





Tidligere:Kan ikke indsætte @Autowired i Listener
Næste:Højtydende mysql 3. udgave kinesisk PDF
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com