Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Quarkus Dersleri
  • Spring Dersleri
    • Spring Cloud
    • Spring Boot
    • Spring Uygulama Örnekleri
    • Spring Core
    • Spring JDBC Template
    • Spring MVC
  • İleri Java Dersleri
    • Java Server Faces
    • Java Server Pages
    • PrimeFaces
    • Servlet
    • JDBC
    • JSTL
    • Java 8
  • Hibernate Dersleri
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
  • Hakkımda
Spring Core

Dependency Injection (DI) – Spring Freamework Dersleri

Paylaş

Spring Freamework‘ün önemli ve sıkça kullanacağımız özelliği ola Dependency Injection yani Bağımlılıkların Enjekte edilmesi özelliğinden bahsedeceğiz.

Yaptığımız projelerde oluşturduğumuz nesnelerin diğer nesneler ile etkileşimi ile bağımlılıklarını yönetebilmemizi sağlamaktadır. Nesneler arasında bağımlılıkları ne kadar esnek olursa sonradan yapacağımız eklemeler daha kolay olmaktadır.

Spring bize iki farklı Dependency Injection özelliği tanımlamaktadır.

  • Setter Injection
  • Constructor Injection

Setter Injection

Metodlar üzerinden injection işlemi yapılmaktadır. Örnek vermek gerekirse;

public class   Kisi {

    private String ad;
    private String soyad;

    public String getAd() {
        return ad;
    }

    public void setAd(String ad) {
        this.ad = ad;
    }

    public String getSoyad() {
        return soyad;
    }

    public void setSoyad(String soyad) {
        this.soyad = soyad;
    }

    @Override
    public String toString() {
        return "Kisi{" +
                "ad='" + ad + '\'' +
                ", soyad='" + soyad + '\'' +
                '}';
    }
}

Spring konfigürasyon dosyamızı tanımlayalım ve içerisine değelerimizi setter injection yöntemiyle atayalım.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd">

        <bean id="kisi" class="com.burakkutbay.model.Kisi">
            <property name="ad">
                <value>Burak</value>
            </property>
            <property name="soyad">
                <value>Kutbay</value>
            </property>
        </bean>
</beans>

Şimdi main classımızı yazalım.

public class Calistir {

    public static void main(String[] args) {

        ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");
        Kisi kisi=context.getBean("kisi");
        kisi.toString();

    }
}

Çalıştırdığımızda ekrana xml dosyamızda verdiğimiz değerler konsol ekranında gözükecektir.

Constructor Injection

Yapılandırıcı metod üzerinden bağımlılıklarımızı nasıl yöneteceğimize bakalım.

public class   Kisi {

    private String ad;
    private String soyad;

    public Kisi(String ad, String soyad) {
        this.ad = ad;
        this.soyad = soyad;
    }

    @Override
    public String toString() {
        return "Kisi{" +
                "ad='" + ad + '\'' +
                ", soyad='" + soyad + '\'' +
                '}';
    }
}

Xml dosyamızda yapılandırıcı metod üzerinden değerlerimizi gönderiyoruz.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd">

        <bean id="kisi" class="com.burakkutbay.model.Kisi">
            <constructor-arg value="Burak"></constructor-arg>
            <constructor-arg value="Kutbay"></constructor-arg>          
        </bean>
</beans>

Programımızı çalıştırmak için main classımızı yazalım.

public class Calistir {

    public static void main(String[] args) {

        ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext.xml");
        Kisi kisi=context.getBean("kisi");
        kisi.toString();

    }
}

İki yöntemle de değelerimizi yönetebiliyoruz. Spring ile bağımlılıkları yönetme işlemleri bu iki yöntemle yapılmaktadır.

Dependency Injection yöntemi ile Spring bizden aldığı değerleri gerekli alanlara eşleştirerek yönetebilmeyi sağlamaktadır. Genellikle değişken olabilecek değerlerin proje kodu içerisinden değil, xml dosyası üzerinden değiştirebilmek için kullanılmaktadır.
 

Önceki Ders: Spring ile Merhaba Dünya Örneği Spring Dersleri Sonraki Ders: Autowiring Nedir? Kullanımı

Tags:

Spring Dependency Injectionspring derslerispring örneklerispring uyguluma örnekleri

Paylaş

Diğer Yazılar

Previous

Illegal Syntax for Set Operation Hatası ve Çözümü

blank
Next

Hibernate Dersleri – Mapping Types

Next
blank
10 Haziran 2017

Hibernate Dersleri – Mapping Types

Previews
05 Mayıs 2017

Illegal Syntax for Set Operation Hatası ve Çözümü

blank

No Comment! Be the first one.

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

blank

Spring Component, Service, Repository, Controller Uygulama Örneği

blank

Spring Dersleri – @Component, @Service, @Repository, @Controller Anotasyon Kullanımı

Spring Dersleri

Spring Dersleri – Collections Kullanımı ve Örneği

Spring Dersleri

Spring Dersleri – FactoryBean Nedir? Kullanımı

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Struts
Röportaj
Android
Vue.js
Node.js
Redis
Spring Cloud Stream
Spring Data
Debezium
Mikroservis Mimarisi
XCode
Spring Native
Video
PostgreSQL
Spring Security
JPA
iPhone Uygulama Geliştirme
Objective C
Design Patterns
DevOps
Git
Apache Kafka
Maven
Yaptığım Projeler
Servlet
Spring Cloud
Linux
Spring
PrimeFaces
Spring Jdbc Template
JDBC
RabbitMQ
Manset
Google
Spring MVC
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Tanıyalım
Java SE
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github