Konu:
Spring'de projeyi yöneten bir bağlama yani context'e ihtiyacımız var. Bu bağlam ile projenin kontrolü, iş yapıcı sınıfları (bean) ve veri transfer sınıfları (modeller ya da POJO'lar) framework'e verilir. Tabir yerindeyse bu yöneticiden habersiz iş yapılmaz. Yapmaya kalktığınızda istediğiniz sonuçları elde edemeyebilirsiniz.
Bir bağlam tanımlamak için çeşitli yollar var. Bunlardan biri applicationContext.xml
dosyasını kullanmak. Spring MVC yapısındaki bir web projemizde WEB-INF klasörü altında tanımlayacağımız bir applicationContext.xml dosyası işlerimizi yönetecek olan proje yöneticimiz görevinde sayılabilir. Aşağıdaki örnek bağlam dosyası ile Spring 3.2.4.RELEASE versiyonuna uygun bir uygulama yapabilirsiniz:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="org.hosaf.spring-ornek"/> </beans>
Burada bağlamımızda temel bir paket olduğunu ve onun içindeki bileşenleri (component) tarayarak projedeki iş yapıcı sınıfları yani bean'leri tanımlayacağını bildirmiş oluyoruz. Taranacak bu temel paketin adı ise org.hosaf.spring-ornek
Bu paketin içinde tanımlayacağınız tüm @Component annotation'ınına sahip olan sınıflar birer bean olarak bağlam içinde yerlerini alacaklar ve birbirlerinden haberdar olarak iş yapabilecekler.
Eğer bağlam dosyanızın yerini ve adını beğenmediyseniz ve farklı bir yere koymak istiyorsanız bunu da web.xml içinde aşağıdaki gibi bildirmeniz gerekiyor:
<context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:/context/myContext.xml </param-value> </context-param>
Burada Java kaynak dosyaları arasında context
adındaki klasörün altında myContext.xml
adında olduğunu bildirmiş olduk.
Kaynak: http://docs.spring.io/spring/docs/3.2.4.RELEASE/spring-framework-referen...