English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
We can inject collection values through the constructor in the Spring framework. constructor-arg The element within can use three elements.
can be: List Set Map
Each collection can have values based on strings and based on non-string values. In this example, we take "forum" as an example, where A question can have multiple answers. There are a total of three pages:
Question.java applicationContext.xml Test.java
In this example, the list we use can contain duplicate elements, and you can use a set that contains only unique elements. However, you need to change the list set in applicationContext.xml and the list set in Question.java.
Question.java
This class contains three properties, two constructors, and the displayInfo() method to display information. Here, we use a list to contain multiple answers.
package com.w3codebox; import java.util.Iterator; import java.util.List; public class Question {}} private int id; private String name; private List<String> answers; public Question() {} public Question(int id, String name, List<String> 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<String> itr=answers.iterator(); while(itr.hasNext()){ System.out.println(itr.next()); } } }
applicationContext.xml
Here we use builder-The list element defines the list of args.
<?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.w3codebox.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> <value>Java is a Platform</value>/value> <value>Java is an Island of Indonasia</value>/value> </list> </constructor-arg> </bean> </beans>
Test.java
This class retrieves a Bean from the applicationContext.xml file and calls the displayInfo method.
package com.w3codebox; 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(); } }