English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

حقن تعريف معتمد على العنصر التابع

إذا كان هناك علاقة HAS-A بين كلاً من الكائنات، يتم إنشاء نموذج العنصر التابع (المكون) أولاً، ثم يتم نقل هذا النموذج كمعامل للوظيفة البنيان الرئيسية. في هذا السياق، سينتمي نموذج Address إلى العنصر التابع. دعونا نبدأ بالنظر إلى كائن Address:

Address.java

يحتوي هذا الكائن على ثلاث خصائص، ومثال بناء واحد وواحدة طريقة toString() لتحويل هذه القيم.

package com.w3codebox;
public class Address {
private String city;
private String state;
private String country;
public Address(String city, String state, String country) {
    super();
    this.city = city;
    this.state = state;
    this.country = country;
}
public String toString(){
    return city+" "+state+" "+country;
}
}

Employee.java

يحتوي على ثلاث خصائص id، الاسم والموقع (عنصر تبعي)، ومثالين بنيانين وواحدة طريقة show() لعرض سجلات الجسم الحالي (بما في ذلك العناصر التبعية).

package com.w3codebox;
public class Employee {
private int id;
private String name;
private Address address; // Aggregation
public Employee() {System.out.println("def cons");}
public Employee(int id, String name, Address address) {
    super();
    this.id = id;
    this.name = name;
    this.address = address;
}
void show(){
    System.out.println(id+" "+name);
    System.out.println(address.toString());
}
}

applicationContext.xml

المرجع الميزة تستخدم لتحديد استدلال آخر، مثل، سنقوم بمرور على الكائن المعتمد كمعامل بناء.

<?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:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="a1" class="com.w3codebox.Address">
<constructor-arg value="ghaziabad"></constructor-arg>
<constructor-arg value="UP"></constructor-arg>
<constructor-arg value="India"></constructor-arg>
</bean>
<bean id="e" class="com.w3codebox.Employee">
<constructor-arg value="12" type="int"></constructor-arg>
<constructor-arg value="Sonoo"></constructor-arg>
<constructor-arg>
<ref bean="a1"/>
</constructor-arg>
</bean>
</beans>

Test.java

هذا الكائن يحصل على Bean من ملف applicationContext.xml ويقوم بتشغيل طريقة show.

package com.w3codebox;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.*;
public class Test {
    public static void main(String[] args) {
        
        Resource r = new ClassPathResource("applicationContext.xml");
        BeanFactory factory = new XmlBeanFactory(r);
        
        Employee s = (Employee) factory.getBean("e");
        s.show();
        
    }
}