Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 16470|Odpověď: 0

[Zdroj] Java annotations@PostConstruct a podrobná vysvětlení a příklady @PreDestroy

[Kopírovat odkaz]
Zveřejněno 04.04.2019 16:21:12 | | | |
Krátký úvod

Java EE5 zavádí dvě anotace, @PostConstruct a @PreDestroy, které působí na životní cyklus servletu a umožňují vlastní operace před inicializací zrna a před jeho zničením. Tento článek hlavně vysvětluje @PostConstruct.

Pokyny k použití API

Následují instrukce pro použití @PostConstruct API:

PostConstruct anotace se používají u metod, které je třeba spustit po dokončení injekce závislostí, aby bylo možné provést jakoukoli inicializaci. Tato metoda musí být vyvolána před zařazením třídy do služby. Všechny třídy podporující závislostní injekci musí tuto anotaci podporovat. I když třída nepožaduje žádnou injekci zdrojů, musí být volána metoda anotovaná pomocí PostConstruct. Existuje pouze jeden způsob, jak tuto anotaci anotovat. Metoda aplikace PostConstruct anotací musí splňovat všechna následující kritéria: metoda nesmí mít žádné parametry, pokud v případě EJB interceptoru, jak je definováno specifikací EJB, v takovém případě bude mít objekt InvocationContext; Typ návratu metody musí být neplatný; Metoda nesmí vyvolat zaškrtnutou výjimku; Metoda aplikace PostConstruct může být veřejná, chráněná, balíček soukromá nebo soukromá; Metoda nemůže být statická kromě aplikačního klienta; Metoda může být konečná; Pokud metoda vyhodí nekontrolovanou výjimku, třída nesmí být zařazena do služby, pokud nejde o EJB, který výjimku zvládne a obnoví ji.
Lze ji shrnout následovně:

  • Existuje pouze jeden způsob, jak tuto anotaci anotovat;
  • Anotovaná metoda nesmí mít žádné parametry;
  • Anotovaná metoda vrací hodnotu void;
  • Anotovaná metoda nesmí vyvolat zaškrtnutou výjimku;
  • Anotovaná metoda musí být nestatická metoda;
  • Tato metoda se provádí pouze jednou;


Diagram průběhu provádění servletu

Přidání dvou anotací umožní servletu pouze spustit diagram:



Během procesu instancování konkrétní fazole se anotovaná metoda @PostConstruct volá za metodou konstruktu a před metodou init.

Příklad

Spustitelné metody napsané na základě Spring bootu lze najít na githubu:https://github.com/HappySecondBrother/example

Metoda UserService (poskytuje uložená data):

Metoda BusinessService, volání UserService @PostConstruct:

Výsledky provedení:

Žádost o projekt

V project@PostConstruct hlavním scénářem aplikace je načíst některá cache data při inicializaci servletu.

Poznámky:

Použití této anotace ovlivňuje čas spuštění služby. Server při spuštění prohledává všechny soubory ve WEB-INF/classes a všechny jar balíčky pod WEB-INF/lib.





Předchozí:Nepodařilo se mi @Autowired do Listenera zařadit
Další:Vysoce výkonný mysql 3. edice čínského PDF
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com