کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش CI With Collection2-Java Spring

CI با مجموعه (2)

مثال تزریق سازنده توسط مجموعه غیر رشته ای(دارای شی وابسته)

در صورت داشتن شی وابسته در مجموعه، می توان با استفاده از عنصر ref درون list، set و map این اطلاعات را تزریق کرد. این مثال از یک فروم که" یک سوال می تواند چندین پاسخ داشته باشد" برداشته شده است، اما پاسخ، اطلاعات منحصر به خود را دارد مانند answerId ، answer و postedBy.چهار فایل زیر در این مثال مورد استفاده قرار گرفته اند که در ادامه به توضیح هر یک می پردازیم.

1. Question.java

2. Answer.java

3. applicationContext.xml

4. Test.java

در این مثال ما ازدر این مثال ما از list استفاده می¬کنیم که قابلیت داشتن عناصر تکراری را دارد. شما می توانید از set که تنها شامل عناصر یکتا است استفاده کنید. در صورت استفاده از set، در فایل applicationContext.xml ، list را به set و در فایل Question.java ،List را به Set تغییر دهید.


Question.java:

این کلاس شامل سه خصیصه، دو سازنده و متد displayInfo() برای چاپ اطلاعات است. در اینجا از List برای ذخیره چندین پاسخ موجود استفاده می¬کنیم.

package com.javatpoint;  
  
import java.util.Iterator;  
import java.util.List;  
  
public class Question {  
private int id;  
private String name;  
private List< Answer> answers;  
  
public Question() {}  
public Question(int id, String name, List< Answer> 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 :

این کلاس شامل سه خصیصه شناسه، نام و 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 دیگر، از خصیصه bean مربوط به عنصر 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="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" />

< /list>  
< /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();  
      
}  
}    
1398/12/14 1657 576
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...