مشخصات مقاله
-
519
-
0.0
-
2960
-
0
-
0
آموزش CI Dependent Object-Java Spring
شی وابسته CI
تزریق سازنده توسط شی وابسته
اگر در بین کلاس ها رابطه HAS-A وجود داشته باشد، باید در ابتدا از اشیای وابسته نمونه بگیریم و سپس آن نمونه را به عنوان آرگومان سازنده کلاس اصلی پاس بدهیم. سناریو مورد نظر در اینجا Employee HAS-A Address است. اشیا کلاس آدرس به عنوان اشیای وابسته در نظر گرفته می شوند. کلاس آدرس موجود در فایل Address.java را با هم بررسی می کنیم. این کلاس شامل سه خصیصه، یک سازنده و متد toString() برای بازگرداندن مقادیر اشیا است.
package com.javatpoint;
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 شامل سه خصیصه شناسه، نام و آدرس(شی وابسته)، دو سازنده و متد show() برای نمایش سوابق شی فعلی از جمله شی وابسته است.
package com.javatpoint;
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 از خصیصه ref برای تعریف مرجع شی دیگر استفاده می شود. به این ترتیب که شی وابسته به عنوان آرگومان سازنده پاس داده می شود.
< ?xml version="1.0" encoding="UTF-8" ?>
< beans 3. xmlns="http://www.springframework.org/schema/beans"
4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5. xmlns:p="http://www.springframework.org/schema/p"
6. xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
< bean id="a1" class="com.javatpoint.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.javatpoint.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 در فایل Test.java، bean را از فایل applicationContext.xml می گیرد و متد show را فراخوانی می کند.
package com.javatpoint;
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();
}
}