Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 16470|Risposta: 0

[Fonte] Java annotations@PostConstruct spiegazioni dettagliate ed esempi di @PreDestroy

[Copiato link]
Pubblicato su 04/04/2019 16:21:12 | | | |
Breve introduzione

Java EE5 introduce due annotazioni, @PostConstruct e @PreDestroy, che agiscono sul ciclo di vita del servlet, consentendo operazioni personalizzate prima che il bean venga inizializzato e prima che venga distrutto. Questo articolo spiega principalmente @PostConstruct.

Istruzioni di utilizzo API

Di seguito sono riportate le istruzioni per l'utilizzo dell'API @PostConstruct:

Le annotazioni PostConstruct vengono utilizzate sui metodi che devono essere eseguiti dopo che l'iniezione di dipendenza è completata per eseguire qualsiasi inizializzazione. Questo metodo deve essere richiamato prima di inserire la classe nel servizio. Tutte le classi che supportano l'iniezione di dipendenza devono supportare questa annotazione. Anche se la classe non richiede alcuna iniezione di risorse, il metodo annotato con PostConstruct deve essere chiamato. C'è un solo modo per annotare con questa annotazione. Il metodo per applicare le annotazioni PostConstruct deve rispettare tutti i seguenti criteri: il metodo non deve avere parametri a meno che, nel caso di un intercettore EJB, come definito dalla specifica EJB, nel qual caso sarà fornito con un oggetto InvocationContext; Il tipo di ritorno del metodo deve essere nullo; Il metodo non deve generare un'eccezione controllata; Il metodo di applicazione di PostConstruct può essere pubblico, protetto, privato o privato; Il metodo non può essere statico tranne che per il client applicativo; Il metodo può essere definitivo; Se il metodo genera un'eccezione non controllata, allora la classe non deve essere inserita nel servizio a meno che non sia un EJB in grado di gestire l'eccezione e recuperare da essa.
Può essere riassunto come segue:

  • C'è un solo modo per annotare con questa annotazione;
  • Il metodo annotato non deve avere alcun parametro;
  • Il metodo annotato restituisce un valore di void;
  • Il metodo annotato non deve lanciare un'eccezione controllata;
  • Il metodo annotato deve essere un metodo non statico;
  • Questo metodo viene eseguito solo una volta;


Diagramma di flusso di esecuzione dei servlet

L'aggiunta di due annotazioni permetterà al servlet di eseguire solo il diagramma di flusso:



Durante il processo di istanziazione di un chicco specifico, il metodo annotato @PostConstruct viene chiamato dopo il metodo costrutto e prima del metodo init.

Esempio

Metodi eseguibili scritti basati su Spring boot si trovano su github:https://github.com/HappySecondBrother/example

Metodo UserService (fornisce dati memorizzati nella cache):

Metodo BusinessService, chiamare UserService tramite @PostConstruct:

Risultati dell'esecuzione:

Applicazione al progetto

Nel project@PostConstruct lo scenario principale dell'applicazione è caricare alcuni dati della cache quando si inizializza il servlet.

Note:

L'uso di questa annotazione influisce sull'orario di inizio del servizio. Il server scansiona tutti i file in WEB-INF/classes e tutti i pacchetti jar sotto WEB-INF/lib all'avvio.





Precedente:Impossibile iniettare @Autowired in Listener
Prossimo:Mysql 3ª edizione in PDF cinese ad alte prestazioni
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com