Kalıcı Bir Profil Oluşturma – Blog Yazma – Web Tasarımı Yapımı – Web Tasarımı YouTube Videosu Yapımı – Web Sitesi Tasarlama Fiyatları

Kalıcı Bir Profil Oluşturma
Durum bilgisi olan ProfileBean oturumumuzdaki en büyük dezavantaj, temsil ettiği profil verilerinin kalıcı olmamasıdır. Bir profil, bir istemci tarafından oluşturulur ve uzak yöntem çağrıları aracılığıyla güncellenir, ancak ProfileBean sunucu tarafından kaldırıldığında veya sunucu çöktüğünde/yeniden başladığında, birikmiş profil verileri kaybolur.
Gerçekten istediğimiz, durumu ilişkisel bir veritabanında veya başka bir kalıcı depolamada kalıcı olarak depolanan ve daha sonra kullanıcı profilli bir uygulamaya yeniden girdiğinde yeniden yüklenebilen bir fasulyedir.
Bir varlık EJB nesnesi bu işlevselliği sağlar ve varlık bean’lerini destekleyen bir EJB kapsayıcısı, bean’inize kalıcı durumu yönetmeyi kolaylaştıran olanaklar sağlar. İstenirse, kabın fasulyenin kalıcılığını sizin için yönetmesini sağlamak da mümkündür.
Örnekte gösterilen ProfileBean’imizin varlık çekirdeği sürümü için uygulamaya bakalım. Daha önceki örneklerde bu varlık çekirdeği için ana arabirimi ve uzak arabirimi zaten görmüştük. Bean’in amacı, durum bilgisi olan oturum sürümümüzle aynıdır: çeşitli nitelikler ve seçenekler için ad/değer çiftlerinin bir listesini tutarak, adlandırılmış bir uygulama kullanıcısı için bir profili temsil eder.
Aradaki fark, bu ProfileBean’in kalıcı depolamada (bu durumda bir veritabanı) veri olarak var olan bir profil varlığını temsil etmesidir. Gerçek koddaki en belirgin farklar, sınıfın her yerine serpiştirilmiş JDBC çağrılarıdır ve burada bean kalıcı verilerini yönetir.
Tanımlanmış birkaç ekstra yöntem de vardır. Çoğu, varlık çekirdekleri için EJB spesifikasyonu tarafından gereklidir ve birkaçı, veritabanına bağlanmak ve güncellemeler yapmak için JDBC kodu tarafından kullanılan yardımcı yöntemlerdir.
ProfileBean varlığının yapısı, Örnek’teki durum bilgisi olan oturum fasulyesi sürümüne benzer. Properties nesnesi, kullanıcının profil girişlerini tutar ve getEntry() ve setEntry() uzak yöntem uygulamaları, istemci için thisProperties nesnesine erişir.
ProfileBean varlığında kullanıcının adını tutacak bir veri üyesi olmadığını fark edebilirsiniz. Bunu burada yapabiliriz çünkü EJB kapsayıcısını bizim için çekirdeğin kalıcılığını yönetmek için kullanmıyoruz, bu nedenle adın birincil anahtar nesnede bulunduğu ve birincil anahtarın bizim için depolandığı gerçeğine güveniyoruz. kapsayıcının bize setEntityContext() yöntemi aracılığıyla verdiği EntityContext.
Bununla birlikte, kapsayıcı tarafından yönetilen kalıcılık kullanıyor olsaydık, kapsayıcının onu nasıl ayarlayacağını bilmesi için çekirdekte ad için bir alan olması gerekirdi. ProfileBean’deki getName() uzak yöntemi, EntityContext’teki getPrimaryKey() yöntemini kullanarak profil için kullanıcı adını nasıl aldığımızı gösterir.
İstemcinin mevcut, aktif bir varlık çekirdeğinin adını değiştirmesine izin vermek istemediğimizden, setName() uzak yöntemini ProfileBean varlığından da kaldırdık. Bu çekirdek için burada gösterilmeyen Profil uzak arabirimi, Örnek’teki Profil arabirimine benzer, ancak bir setName() yöntemi yoktur.
Oyun profili oluşturma
Instagram profil resmi yapma
Havalı profil resmi yapma
Havalı profil resmi
Profil Resmi yapma sitesi
Profil fotoğrafı yapma
Whatsapp için Güzel profil resmi
2022 profil resmi
Profil artık kalıcı bir varlık bean olduğundan ve ad bean’in birincil anahtarı veya tanımlayıcı özelliği olduğundan, bean’in adı yalnızca bean oluşturulduğunda ayarlanabilir. Varlık çekirdeği etkinken, belirli bir kullanıcı için bir profil varlığıyla ilişkilendirilir ve istemci yalnızca profille ilişkili adı okuyabilir.
ProfileBean kodunda, ejbActivate(), ejbPassivate(), ejbCreate() ve ejbRemove() dahil olmak üzere EJB için gerekli yöntemlerin birçoğunu fark edeceksiniz. ejbActivate() ve ejbPassivate() yöntemleri, çekirdeğin sırasıyla EJB sunucusunun varlık çekirdek havuzundan dışarı ve içine hareketini işler.
ProfileBean üzerindeki ejbCreate() yöntemleri, veritabanında yeni bir profil varlığı oluşturur. Örnekten ProfileHome arayüzümüzde her create() yöntemi için eşleşen bir ejbCreate() yöntemi vardır.
EJB kapsayıcısı, oluşturulan birincil anahtar nesnesini yakalamaktan, onu uzak bir Profil nesnesine dönüştürmekten ve ProfileHome arabiriminde create() yöntemini çağıran istemciye bir uzak Profil saplaması döndürmekten sorumludur. ProfileBean’deki ejbRemove() yöntemi, bu profil varlığına ilişkin tüm kayıtları veritabanından siler.
ProfileBean ayrıca varlık çekirdeklerine özgü yöntemler içerir. Her ejbCreate() yöntemi için, ejbCreate() yöntemi geri döndükten ve kap, bean’in işlem bağlamını başlattıktan sonra kapsayıcı tarafından çağrılan, karşılık gelen bir ejbPostCreate() yöntemine sahiptir. Bu noktada ProfileBean’imizde yapacak başka bir şeyimiz yok, bu yüzden her ejbPostCreate() yönteminde standart çıktıya bir mesaj yazdırıyoruz.
ProfileBean varlığımızda, ProfileHome’daki her findXXX() yöntemine karşılık gelen bir ejbFindXXX() yöntemi vardır. ejbFindByPrimaryKey() yöntemi, yalnızca argüman olarak iletilen birincil anahtarı alır ve veri tabanından varlığa ilişkin verileri yüklemeye çalışır.
Başarılı olursa, birincil anahtarı, istemciye döndürülmek üzere bir uzak Profil nesnesine dönüştürüldüğü kaba geri döndürür. Bulucu yönteminde tüm profil verilerini buraya gerçekten yüklememizin gerekli olmadığını unutmayın; yalnızca adlandırılmış varlığın veritabanında var olduğunu doğrulamamız ve başarı sinyali vermek için birincil anahtarı döndürmemiz veya bir istisna oluşturmamız gerekir.
Konteyner, döndürülen birincil anahtarı alır ve havuzundaki çekirdeklerden birine atar (muhtemelen finder yöntemi olarak adlandırdığı anahtarla aynıdır, ancak zorunlu değildir).
ejbLoad() içinde kullanılan loadFromDB() yöntemine zaten sahip olduğumuz için, onu burada finder yönteminde yeniden kullanmak basit bir meseledir. Profil verilerini iki kez yükleme performansı çok yüksekse, birincil anahtardaki adla eşleşen bir kayıt için PROFILE tablosunu basitçe kontrol etmek üzere finder yöntemini yeniden yazmamız gerekir.
ejbFindByEntryValue() yöntemi, bir anahtar ve değer String bağımsız değişkenlerini alır ve PROFILE_ENTRY tablosunda eşleşen bir anahtar/değer çiftine sahip tüm profil varlıklarını bulmaya çalışır.
Böyle bir kaydı olan her ad, birincil anahtar nesneye dönüştürülür ve bir Numaralandırmada kapsayıcıya döndürülür. Kapsayıcı, her birincil anahtar nesneyi bir uzak Profil nesnesine dönüştürür ve kümeyi istemciye döndürür. Yol boyunca bir veritabanı sorunuyla karşılaşırsak, bir FinderException atarız.
Varlık Bağlamı
EJB kabı, EntityContext nesnesi biçiminde bir varlık çekirdeğine bağlam bilgisi sağlar. Kap, bean’in setEntityContext() yöntemini kullanarak bu nesneyi ayarlar ve bean kaldırılırken, bean’in unsetEntityContext() yöntemini çağırarak onu kaldırır.
SessionContext gibi, EntityContext de bean’e getEJBObject() yöntemi aracılığıyla karşılık gelen uzaktan dışa aktarılan nesnesine erişim sağlar. Ayrıca EntityContext, bir varlığa getPrimaryKey() yoluyla birincil anahtarına erişim sağlar. Bu yöntemin bildirilen dönüş türü Object’tir, ancak döndürülen nesne bean’in birincil anahtar türündedir.
EntityContext aracılığıyla erişilen verilerin, bir sonraki bölümde açıklandığı gibi, bean’in ömrü boyunca EJB kabı tarafından değiştirilebileceğini unutmayın.
Bu nedenle, bean’in tüm ömrü boyunca geçerli olmayabileceklerinden, EJB uzak nesne referansını veya birincil anahtarı bean nesnesindeki veri değişkenlerinde saklamamalısınız. Örneğin, ProfileBean varlığımız, EntityContext referansını, kullanım ömrü boyunca ihtiyaç duyulduğunda bağlam verilerine erişebileceği bir örnek değişkeninde saklar.
Web sitelerinizi, arama motorlarında en yukarı getirmek adına sizlere 3 adet paket öneriyoruz. Bu paketler sayesinde web siteleriniz aramalarda 1 yıl içerisinde en yukarıya tırmanacaktır.
1) Backlink Paketi 50 $ (Yıllık Ücret)
2) Hızlandırma Paketi 300 $ (Yıllık Ücret)
3) Kelime Yönlendirme Paketi 150 $ (Aylık Ücret)