Kısa giriş
Java EE5, servlet yaşam döngüsü üzerinde etkili olan @PostConstruct ve @PreDestroy adlı iki açıklama sunar; bu açıklamalar, çekirdek başlatılmadan önce ve yok edilmeden önce özel işlemleri mümkün kılar. Bu makale esas olarak @PostConstruct açıklıyor.
API Kullanım Talimatları
@PostConstruct API'sini kullanma talimatları şunlardır:
PostConstruct açıklamaları, herhangi bir başlatmayı gerçekleştirmek için bağımlılık enjeksiyonu tamamlandıktan sonra yürütülmesi gereken yöntemlerde kullanılır. Bu yöntem, sınıfı hizmete koymadan önce çağrılmalıdır. Bağımlılık enjeksiyonunu destekleyen tüm sınıflar bu açıklamayı desteklemelidir. Sınıf herhangi bir kaynak enjeksiyonu istemese bile, PostConstruct ile notlanmış yöntem çağrılmalıdır. Bu açıklamayla açıklama yapmanın tek bir yolu vardır. PostConstruct annotasyonlarını uygulama yöntemi aşağıdaki tüm kriterlere uymalıdır: EJB spesifikasyonu tarafından tanımlanan bir EJB engelleyicisi dışında yöntemin herhangi bir parametresi olmamalıdır; bu durumda bir InvocationContext nesnesi ile birlikte gelir; Yöntemin dönüş türü geçersiz olmalıdır; Yöntem kontrol edilmiş bir istisna oluşturmamalıdır; PostConstruct uygulama yöntemi kamu, korunuyor, paket özel veya özel olabilir; Yöntem, uygulama istemcisi dışında statik olamaz; Yöntem kesin olabilir; Eğer yöntem kontrol edilmemiş bir istisna verirse, sınıf servise yerleştirilmemelidir; eğer istisnayı yönetebilen ve ondan kurtarabilen bir EJB değilse. Şöyle özetlenebilir:
- Bu açıklamayla açıklama yapmanın tek bir yolu vardır;
- Açıklamalı yöntemin herhangi bir parametresi olmamalıdır;
- Açıklamalı yöntem boşluk değeri döndürür;
- Açıklamalı yöntem işaretli bir istisna oluşturmamalıdır;
- Açıklamalı yöntem statik olmayan bir yöntem olmalıdır;
- Bu yöntem yalnızca bir kez uygulanır;
Servlet yürütme akış şeması
İki açıklamanın eklenmesi, servletin akış şemasını sadece yürütmesine izin verir:
Belirli bir fasulyenin örnekleme sürecinde, açıklamalı yöntem @PostConstruct yapı yönteminden sonra ve init yönteminden önce adlandırılır.
Örnek
Spring boot temelinde yazılmış çalıştırılabilir yöntemler github'da bulunabilir:https://github.com/HappySecondBrother/example
UserService yöntemi (önbelleğe alınmış veri sağlar):
BusinessService yöntemi, UserService'i @PostConstruct çağırarak:
Uygulama sonuçları:
Proje başvurusu
project@PostConstruct ana uygulama senaryosu, servleti başlatırken bazı önbellek verilerini yüklemektir.
Notlar:
Bu notasyonun kullanılması hizmetin başlama saatini etkiler. Sunucu, WEB-INF/class'taki tüm dosyaları ve WEB-INF/lib altında tüm jar paketlerini başlatıldığında tarar.
|