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.
|