Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 16470|Antwoord: 0

[Bron] Java annotations@PostConstruct gedetailleerde uitleg en voorbeelden van @PreDestroy

[Link kopiëren]
Geplaatst op 04-04-2019 16:21:12 | | | |
Korte introductie

Java EE5 introduceert twee annotaties, @PostConstruct en @PreDestroy, die inwerken op de levenscyclus van de servlets, waardoor aangepaste bewerkingen mogelijk zijn voordat de boon wordt geïnitialiseerd en voordat deze wordt vernietigd. Dit artikel legt vooral @PostConstruct uit.

API-gebruiksinstructies

De volgende instructies voor het gebruik van de @PostConstruct API:

PostConstruct-annotaties worden gebruikt op methoden die na afhankelijkheidsinjectie moeten worden uitgevoerd om een initialisatie uit te voeren. Deze methode moet worden aangeroepen voordat de klasse in de service wordt geplaatst. Alle klassen die afhankelijkheidsinjectie ondersteunen, moeten deze annotatie ondersteunen. Zelfs als de klasse geen resource injection aanvraagt, moet de methode die met PostConstruct is geannoteerd worden aangeroepen. Er is maar één manier om met deze annotatie te annoteren. De methode voor het toepassen van PostConstruct-annotaties moet voldoen aan alle volgende criteria: de methode mag geen parameters bevatten tenzij in het geval van een EJB-interceptor, zoals gedefinieerd door de EJB-specificatie, in welk geval het een InvocationContext-object bevat; Het retourtype van de methode moet leeg zijn; De methode mag geen gecontroleerde uitzondering gooien; De methode om PostConstruct toe te passen kan openbaar, beschermd, pakket privé of privé zijn; De methode kan niet statisch zijn, behalve voor de applicatieclient; De methode kan definitief zijn; Als de methode een niet-gecontroleerde uitzondering gooit, mag de klasse niet in de service worden geplaatst tenzij het een EJB is die de uitzondering kan verwerken en ervan kan herstellen.
Het kan als volgt worden samengevat:

  • Er is maar één manier om met deze annotatie te annoteren;
  • De geannoteerde methode mag geen parameters hebben;
  • De geannoteerde methode geeft een waarde van void terug;
  • De geannoteerde methode mag geen gecontroleerde uitzondering gooien;
  • De geannoteerde methode moet een niet-statische methode zijn;
  • Deze methode wordt slechts één keer uitgevoerd;


Servlet-uitvoeringsstroomdiagram

Het toevoegen van twee annotaties maakt het alleen mogelijk dat de servlet het stroomdiagram uitvoert:



Tijdens het instantiatieproces van een specifieke boon wordt de geannoteerde methode @PostConstruct aangeroepen na de constructmethode en vóór de init-methode.

Voorbeeld

Uitvoerbare methoden geschreven op basis van Spring boot zijn te vinden op github:https://github.com/HappySecondBrother/example

UserService-methode (levert gecachte gegevens):

BusinessService-methode, waarbij UserService wordt aangeroepen door @PostConstruct:

Uitvoeringsresultaten:

Projecttoepassing

In de project@PostConstruct is het belangrijkste scenario om cachegegevens te laden bij het initialiseren van de servlet.

Notities:

Het gebruik van deze annotatie beïnvloedt de starttijd van de dienst. De server scant alle bestanden in WEB-INF/classes en alle jar-pakketten onder WEB-INF/lib bij het opstarten.





Vorig:Kan @Autowired niet injecteren in Listener
Volgend:Hoogwaardige mysql 3e editie Chinese PDF
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com