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

تزریق سازنده با collection

به نام خدا

در این مقاله از سری مقاله های فریمورک اسپرینگ، قصد داریم توضیحات بیشتری در مورد انواع تزریق وابستگی و تزریق با استفاده از سازنده در اختیار شما کاربران گرامی سایت میهن لرن قرار دهیم.

 

در مقاله های پیشین در مورد تزریق وابستگی با استفاده از سازنده صحبت شد، جالب است بدانید در فریمورک اسپرینگ ما می توانیم مقادیر collection را با استفاده از سازنده، تزریق کنیم. در درون المنت constructor-arg از سه عنصر می توان استفاده کرد، شامل:

1. list
2. set
3. map

هر collection ای می تواند مبتنی بر رشته (string based) و یا غیرمبتنی بر رشته (non-string based) باشد.

در این مثال، نمونه ای از یک فروم داریم که در آن یک سوال می تواند چندین پاسخ داشته باشد. سه صفحه (page) داریم:

1. Question.java
2. applicationContext.xml
3. 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());  
    }  
}  
  
}

applicationContext.xml

در اینجا برای تعریف list از عنصر list از constructor-arg استفاده کرده ایم.

<?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="q" class="com.javatpoint.Question">  
<constructor-arg value="111"></constructor-arg>  
<constructor-arg value="What is java?" > </constructor-arg>  
<constructor-arg>  
<list>  
<value>Java is a programming language</value>  
<value>Java is a Platform</value>  
<value>Java is an Island of Indonasia</value>  
</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();  
      
}  
}

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

امنیت در پیام رسانی

امنیت پیام های شما چقدر است؟

با نام و یاد خدا با توجه به گسترش روز افزورن استفاده از نرم افزارهای …

پاسخ دهید

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