İlkbahar - Fasulye Tanımı

Uygulamanızın omurgasını oluşturan ve Spring IoC konteyneri tarafından yönetilen nesnelere denir. beans. Fasulye, bir Spring IoC konteyneri tarafından örneklenen, bir araya getirilen ve başka şekilde yönetilen bir nesnedir. Bu çekirdekler, konteynere sağladığınız konfigürasyon meta verileriyle oluşturulur. Örneğin, önceki bölümlerde gördüğünüz XML <bean /> tanımları biçiminde.

Fasulye tanımı, adı verilen bilgileri içerir configuration metadata, konteynerin aşağıdakileri bilmesi için gerekli olan -

  • Fasulye nasıl oluşturulur
  • Bean yaşam döngüsü ayrıntıları
  • Bean bağımlılıkları

Yukarıdaki tüm konfigürasyon meta verileri, her bir fasulye tanımlamasını oluşturan aşağıdaki özelliklerin bir kümesine çevrilir.

Sr.No. Özellikler ve Açıklama
1

class

Bu öznitelik zorunludur ve çekirdeği oluşturmak için kullanılacak fasulye sınıfını belirtir.

2

name

Bu öznitelik, fasulye tanımlayıcısını benzersiz bir şekilde belirtir. XML tabanlı yapılandırma meta verilerinde, bean tanımlayıcılarını belirtmek için id ve / veya name niteliklerini kullanırsınız.

3

scope

Bu özellik, belirli bir fasulye tanımından yaratılan nesnelerin kapsamını belirtir ve fasulye kapsamları bölümünde tartışılacaktır.

4

constructor-arg

Bu, bağımlılıkları enjekte etmek için kullanılır ve sonraki bölümlerde tartışılacaktır.

5

properties

Bu, bağımlılıkları enjekte etmek için kullanılır ve sonraki bölümlerde tartışılacaktır.

6

autowiring mode

Bu, bağımlılıkları enjekte etmek için kullanılır ve sonraki bölümlerde tartışılacaktır.

7

lazy-initialization mode

Tembel başlatılmış bir fasulye, IoC konteynerine başlangıçta değil, ilk istendiğinde bir fasulye örneği oluşturmasını söyler.

8

initialization method

Çekirdek üzerindeki tüm gerekli özellikler konteyner tarafından ayarlandıktan hemen sonra çağrılacak bir geri arama. Fasulye yaşam döngüsü bölümünde tartışılacaktır.

9

destruction method

Çekirdeği içeren kap yok edildiğinde kullanılacak bir geri arama. Fasulye yaşam döngüsü bölümünde tartışılacaktır.

Bahar Yapılandırması Meta Verileri

Spring IoC konteyneri, bu konfigürasyon meta verilerinin gerçekte yazıldığı formattan tamamen ayrılmıştır. Spring Container'a yapılandırma meta verileri sağlamanın üç önemli yöntemi şunlardır:

  • XML tabanlı konfigürasyon dosyası.
  • Ek açıklama tabanlı yapılandırma
  • Java tabanlı konfigürasyon

XML tabanlı yapılandırma meta verilerinin konteynere nasıl sağlandığını zaten gördünüz, ancak tembel başlatma, başlatma yöntemi ve imha yöntemi dahil olmak üzere farklı fasulye tanımlarına sahip başka bir XML tabanlı yapılandırma dosyası örneği görelim -

<?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-3.0.xsd">

   <!-- A simple bean definition -->
   <bean id = "..." class = "...">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with lazy init set on -->
   <bean id = "..." class = "..." lazy-init = "true">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with initialization method -->
   <bean id = "..." class = "..." init-method = "...">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- A bean definition with destruction method -->
   <bean id = "..." class = "..." destroy-method = "...">
      <!-- collaborators and configuration for this bean go here -->
   </bean>

   <!-- more bean definitions go here -->
   
</beans>

Kontrol edebilirsiniz Bahar Merhaba Dünya Örneği , yapılandır tanımlayabilir ve Bahar fasulye nasıl oluşturulduğunu anlamak için.

Ek Açıklama Tabanlı Yapılandırma hakkında ayrı bir bölümde tartışacağız. Ek Açıklamalarla Yay Bağımlılık Enjeksiyonu ile programlamaya başlamadan önce, diğer birkaç önemli Bahar kavramını anlamanızı istediğimiz için, ayrı bir bölümde kasıtlı olarak tartışılmıştır.