Merhaba Java dostları,
Daha önceki yazımda Spring annotation configuration nasıl tanımlanır konusuna değinmiştim. Bu yazımda ise nesnelerin birbirilerine olan bağımlılıklarının nasıl düzenleneceğini anlatmak istiyorum.
Bir sınıfta başka bir sınıfa ihtiyaç duyulması durumu kaçınılmazdır. Spring’ in temel çıkış noktalarından birisi olan dependency injection ise bu durumda vazgeçilmez vazgeçilmemesi gereken bir tasarım olarak ortaya çıkıyor. Yani A nesnesi ihtiyaç duyduğu B nesnesini direkt olarak constructor veya set metotları aracılığı ile kabul edecektir. Kendi içersinde new ile oluşturup gerekli işlemleri yapması istenilmeyen bir durumdur.
Yukarıda anlatmaya çalıştığım durumu sağlamak için spring annotation injection nasıl yapılır hemen bakalım. İşte örnek sınıflarımız.
package anajavatica.spring.bean.annotation.injection;
public class Honey { private String honeyName = “”; public Honey(String honeyName) { public String getHoneyName() { } |
package anajavatica.spring.bean.annotation.injection;
import org.springframework.context.annotation.Bean; @Configuration @Bean(name = “sweetHoney”) @Bean(name = “oldHoney”) } |
Burada Honey sınıfına ait iki tane prototype bean tanımlıyoruz. Dikkatinizi çekmek istediğim bir nokta da @Bean içerisindeki name değerleri. Bunları ileride kullanacağız.
package anajavatica.spring.bean.annotation.injection;
import org.springframework.beans.factory.annotation.Autowired; public class Bear { @Autowired @Autowired public void sweetHoneyParty() { public void oldHoneyParty() { } |
@Autowired annotation tanımladığımız beanlerin birbirileri ile olan ilişkilerini ve atamalarını sağlayan temel anahtar. @Autowired olarak işaretlenen alanların isimlendirmesine dikkat edin. Bir önceki HoneyConfig sınıfında verilen bean name ile aynı. Böyle Spring bizim yerimize atamaları sağlıyor.
package anajavatica.spring.bean.annotation.injection;
import org.springframework.context.annotation.Bean; @Configuration @Bean(name = “bear”) } |
Yine klasik bir bean tanımı ve son olarak da main sınıfımız.
package anajavatica.spring.bean.annotation.injection;
import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class HoneyMain { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(HoneyConfig.class, Bear.class); } } |
Çok basit bir @Autowired annotation ile nesne bağımlılıklarını yönetmiş olduk ve böylece bu yazımda Spring Annotation Injection konusunu elimden geldiğince anlatmaya çalıştım.
Bol Java’ lı günler dileğiyle… 😀
No responses yet