ضعیفبد نیستمتوسطخوبعالی (3 votes, average: 5٫00 out of 5)
Loading...

تزریق سازنده با Non-String Collection

به نام خدا

در ادامه مقاله پیشین در مورد تزریق سازنده با collection در فریمورک اسپرینگ، در این مقاله مثالی درباره تزریق سازنده با non-string collection ها بیان می کنیم.


 

اگر در collection مورد نظر خود، اشیای مستقل داشته باشیم، می توانیم این اطلاعات را با استفاده از عنصر ref که در list، set یا map وجود دارد تزریق کنیم.
در این مثال، یک فروم داریم که در آن یک سوال می تواند چندین پاسخ داشته باشد. اما هر پاسخ اطلاعات خاص خودش را دارد مانند answerId و answer و postedBy. از 4 صفحه (page) برای این مثال استفاده کرده ایم:
1. Question.java
2. Answer.java
3. applicationContext.xml
4. Test.java
در اینجا، ما از list استفاده می کنیم که می تواند عناصر تکراری داشته باشد، شما ممکن است از set استفاده کنید که تنها عناصر یکتا دارد. برای این کار لازم است در فایل applicationContext.xml بجای list قرار دهید set و همچنین در فایل Question.java بجای List از Set استفاده کنید.

Question.java
این کلاس شامل سه ویژگی (property) است، دو سازنده و متود displayInfo که این متود اطلاعات را چاپ می کند. در اینجا ما از list استفاده می کنیم که شامل چندین پاسخ است.

package com.javatpoint;  
  
import java.util.Iterator;  
import java.util.List;  
  
public class Question {  
private int id;  
private String name;  
private List answers;  
  
public Question() {}  
public Question(int id, String name, List answers) {  
    super();  
    this.id = id;  
    this.name = name;  
    this.answers = answers;  
}  
  
public void displayInfo(){  
    System.out.println(id+" "+name);  
    System.out.println("answers are:");  
    Iterator itr=answers.iterator();  
    while(itr.hasNext()){  
        System.out.println(itr.next());  
    }  
}  
  
}

Answer.java
این کلاس سه property دارد، id، name و by بهمراه سازنده و متود toString.

package com.javatpoint;  
  
public class Answer {  
private int id;  
private String name;  
private String by;  
  
public Answer() {}  
public Answer(int id, String name, String by) {  
    super();  
    this.id = id;  
    this.name = name;  
    this.by = by;  
}  
  
public String toString(){  
    return id+" "+name+" "+by;  
}  
}

applicationContext.xml
عنصر ref برای تعریف ارجاعی به یک bean دیگر استفاده شده است. در اینجا، ما از خصیصه bean از عنصر ref استفاده می کنیم تا ارجاعی به bean دیگر مشخص کنیم.

<?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="ans1" class="com.javatpoint.Answer">
<constructor-arg value="1"></constructor-arg>
<constructor-arg value="Java is a programming language"> </constructor-arg>
<constructor-arg value="John"> </constructor-arg>
</bean>
  
<bean id="ans2" class="com.javatpoint.Answer">
<constructor-arg value="2"> </constructor-arg>
<constructor-arg value="Java is a Platform"> </constructor-arg>
<constructor-arg value="Ravi"> </constructor-arg>
</bean>
  
<bean id="q" class="com.javatpoint.Question">
<constructor-arg value="111"> </constructor-arg>
<constructor-arg value="What is java?" > </constructor-arg>  
<constructor-arg>
<list>
<ref bean="ans1"/>
<ref bean="ans2"/>
</lis>
</constructor-arg>  
</bean>  
  
</beans>

Test.java
این کلاس bean را از فایل applicationContext.xml می گیرد و متود displayInfo را فراخوانی می کند.

package com.javatpoint;  
  
import org.springframework.beans.factory.BeanFactory;  
import org.springframework.beans.factory.xml.XmlBeanFactory;  
import org.springframework.core.io.ClassPathResource;  
import org.springframework.core.io.Resource;  
  
public class Test {  
public static void main(String[] args) {  
    Resource r=new ClassPathResource("applicationContext.xml");  
    BeanFactory factory=new XmlBeanFactory(r);  
      
    Question q=(Question)factory.getBean("q");  
    q.displayInfo();  
      
}  
}

همچنین ببینید

آموزش فارسی فریم ورک لاراول

آموزش فریم ورک لاراول – قسمت نهم

به نام خالق زیبایی ها با نهمین قسمت از مجموعه پر طرفدار “آموزش فریم ورک …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *