Kayıtlar

Spring Ders08 - Bean Factory ve Application Context

Resim
   Bu derste kısaca bean factory containerı ve application context containerı arasındaki bazı farkları ele alacağız. Bean Factory Application Context Temel containerdır. Sadece nesneler üretir ve bağımlılıkları enjekte eder. Security, transaction, messaging gibi tüm servisleri sağlayan containerdır. AutoScanningi desteklemez. AutoScaningi destekler. İstek süresine kadar bean üretmez. Bu beanleri gevşek yüklediği anlamına gelir. Sadece yükleme zamanında singleton beanleri oluşturur. Sadece singleton ve prototype bean scopelarını destekler. Tüm bean scopelarını destekler. Anotasyon tabanlı dependency injection (bağımlılık enjektesi)nı desteklemez. Anotasyon tabanlı dependency injection (bağımlılık enjektesi)nı destekler. Internationalization (I18N)mesajlarını desteklemez. Internationalization (I18N) mesajlarını destekler. Kaydedilmiş beanlere listener gibi eventlar yayınlayamaz. Kaydedi

Spring Ders07 - Bean Names

Resim
   Kurumsal uygulamalarda kullanıcılara aynı beane erişebilmeleri için farklı isimler verilebilir. Bu name parametresiyle sağlanır. <bean id="t" name="t1,t2;t3 t4" class="...."></bean> Bir beane aynı zamanda alias name (takma isim) de verilebilir. <bean id="t" class="...."></bean> <alias name="t" alias="z"/> Dikkat edilmesi gereken bazı noktalar Beane hem id parametresiyle hemde name parametresiyle erişilebilir. name parametresine birden fazla argüman verebilmek için argümanlar arasında; virgül (,), noktalı virgül (;) veya boşluk ( ) kullanılabilir. id ve name argümanlarıyla aynı beane erişim yapılmaktadır. Dolayısıyla birisi üzerinden yapılacak değişiklik hepsini kapsayacaktır. Örnek program aşağıda verilmiştir. Main.java package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXml

Spring Ders06 - Bean Scopes

Resim
   Bir bean, getBean ile .xml dosyasından birkaç kez çağrıldığında daha önce çağrılan beanin mi kullanılacağı yoksa yeni bir örnek bean mi oluşturulacağı bean scopela belirlenir. 5 tane bean scope vardır. singleton prototype request session globalSession singleton : Her bean çağrılışında aynı bean örneği kullanılır. Bean ancak container yeniden örneklenirse yeni bir bean üretilir. Scope seçilmezse default olarak singleton scope kullanılır. prototype : Her bean çağrılışında yeni bean örneği kullanılır. request :  Web uygulamalarında geçerlidir. Bean HTTP isteği üzerinde tanımlanmıştır. Her HTTP isteğinde yeni bir bean örneklenir. session : Web uygulamalarında geçerlidir. Bean HTTP oturumu (session) üzerinde tanımlanmıştır. Http session boyunca aynı bean kullanılır. globalSession : Portal uygulamalarda geçerlidir. Şimdi bir örnek yapalım. Main.java package test; import org.springframework.context.ApplicationContext; import org.spri

Spring Ders05 - Dependency Injection

Resim
   Dependency Injenction ( Bağımlılık Enjektesi ) bağımlılıkları dışarıdan vererek sıkı bağımlı programlar yerine gevşek bağımlı programlar yazabilmeyi amaçlar. Sıkı bağımlı programlarda sınıfların içinde new anahtar kelimesi kullanılarak yeni bir nesne oluşturulur. Oluşturulan nesne o sınıfa bağımlıdır. Gevşek bağımlı programlarda ise sınıflara dışardan bir nesne enjekte edilir. Böylece o sınıf ve sınıfın içerisine enjekte edilen nesne arasındaki bağ gevşek olmuş olur. Gevşek bağlı programlardaki nesnelerin güncellenmesi daha kolaydır. Sıkı bağımlı program ... public void personelOlustur(){   p=new Personel(); } ... Gevşek bağımlı program ( Dependency Injection )  ... public void setPersonel(Personel p){   this.p=p; } ... Dependency Injection Setter metoduyla Constructor metoduyla yapılabilir. Şimdi bunları içeren bir örnek yapalım. Main.java package test; import org.springframework.context.ApplicationContext; im

Spring Ders04 - Abstract Bean

Resim
   Abstract bean şablon bean oluşturmak için kullanılır. Amacı bean üretmek değil, üretilecek beanlerin taslağını oluşturmaktır. Nasıl kullanılacağı aşağıda belirtilmiştir. <beans...>          <bean id="abstractBean1"  abstract="true" >        <property name="oz1" value="de1"/>        <property name="oz2" value="de2"/>     </bean>          <bean id="bean2"   class="..."   parent=" abstractBean1" >     </bean> </beans> Abstract bean oluştururken dikkat edilmesi gereken bazı noktalar Abstract beanin sınıfı yoktur. Abstract bean   abstract="true" olarak belirtilmelidir. Abstract beani kullananan bean hangi abstract beani kullandığını  parent="... " ile belirtmelidir. Şimdi programa geçelim. Main.java package test; import org.springframework.context.ApplicationContext; import

Spring Ders03 - Factory Bean & Factory Method

Resim
   Factory bean      : Bir container tabanlı beanin, container tabanlı başka bir beani örneklemesinden sorumlu beandir.     Factory method : Bir factory beanin hedef tipteki bir beani örnekleyen metodudur.  <beans..>      <bean id="beanF"  class="F"/>      <bean id="bean1" factory-bean="beanF" factory-method="methodF"/> </beans> public class F{     public T methodF(){           return new T();    } }  Yani yukarıdaki kodda anlatılmak istenen, bean1 örneği oluşturulması için beanF beaninin methodF metodu çağrılıyor. Bu kadar basit. Eğer ki methodF static metot olsaydı, beanF' yi oluşturmamıza gerek yoktu. Direkt olarak methodF 'i kullanabilirdik. <beans..>      <bean id="bean1" factory-method="methodF"/> </beans>    public class F{     public static T methodF(){      

Spring Ders02 - İlk Spring Projesi

Resim
Bir spring projesi yapabilmek için gerekli .jar dosyalarını aşağıdaki adresten temin edebilirsiniz. https://projects.spring.io/spring-framework/ Şimdilik bize gerekli olan jar dosyaları aşağıda belirtilmiştir. spring-bean.jar spring-context.jar spring-core.jar spring-expression.jar commons-logging.jar ** Spring projesini basit bir java projesi olarak veya dinamik web projesi olarak yapabilirsiniz.Eğer dinamik web projesi olarak yapacak iseniz, jar uzantılı dosyalarınızı WebContent/WEB-INF/lib dizinine koymayı unutmayın. Eclipse üzerinden yeni bir Spring projesi oluşturmak için aşağıdaki adımları izleyin. File -> New -> Project -> Java -> Java Project ile yeni bir java projesi açın. Proje üzerindeki src klasörüne sağ tıklayıp, New -> Other -> Spring -> Spring Bean Definition yolunu izleyerek applicationContext.xml dosyası oluşturun. applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmln