With this example we will show you how to inject Collections in Spring Bean set.
In order to show how Collections can be injected in a Spring Bean we will create a simple Spring Bean with a property Set.
If you already have an idea on how to create a maven project in Eclipse will be great otherwise I will tell you here how to create a maven project in Eclipse.
Prerequisites
The following things are required in order to run the application
Eclipse Kepler
JDK 1.8
Have maven 3 installed and configured
Spring dependencies in pom.xml
Now we will see the below steps how to create a maven based spring project in Eclipse
Step 1. Create a standalone maven project in Eclipse
Go to File -> New -> Other. On popup window under Maven select Maven Project. Then click on Next. Select the workspace location – either default or browse the location. Click on Next. Now in next window select the row as highlighted from the below list of archtypes and click on Next button.
maven-arctype-quickstart
Now enter the required fields (Group Id, Artifact Id) as shown below
Group Id : com.roytuts
Artifact Id : spring-faqs
Step 2. Modify the pom.xml file as shown below.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.roytuts</groupId> <artifactId>spring-faqs</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>spring-faqs</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <jdk.version>1.8</jdk.version> <junit.version>4.11</junit.version> <spring.version>4.1.5.RELEASE</spring.version> </properties> <dependencies> <!-- Spring framework --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${jdk.version}</source> <target>${jdk.version}</target> </configuration> </plugin> </plugins> </build> </project>
Step 3. If you see JRE System Library[J2SE-1.4] then change the version by below process
Do right-click on the project and go to Build -> Configure build path, under Libraries tab click on JRE System Library[J2SE-1.4], click on Edit button and select the appropriate jdk 1.8 from the next window. Click on Finish then Ok.
Step 4. Create src/main/resources folder for putting the resource files.
Do right-click on the project and go New -> Source Folder. Give Folder name: as src/main/resources and click on Finish button.
Step 5. Create an XML properties file under src/main/resources.
Do right-click on src/main/resources in the project and go New -> file. Give File name: as applicationContext.xml and click on Finish button.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="springCollection" class="com.roytuts.spring.collection.SpringCollection"> <property name="set"> <set> <value>just some string</value> <value>another some string</value> <value>more value string</value> </set> </property> </bean> </beans>
Step 6. Create a POJO class that contains list element
package com.roytuts.spring.collection; import java.util.Map; public class SpringCollection { private Set<String> set; public Set<String> getSet() { return set; } public void setSet(Set<String> set) { this.set = set; } }
Step 7. Create a Test class which will test our code how it works
package com.roytuts.spring.collection; import java.util.Set; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringCollectionTest { private SpringCollection springCollection; @Before public void setUp() { ApplicationContext applicationContext = new ClassPathXmlApplicationContext( "applicationContext.xml"); springCollection = applicationContext.getBean("springCollection", SpringCollection.class); } @Test public void displaySet() { Set<String> set = springCollection.getSet(); for (String string : set) { System.out.println(string); } } }
Step 8. Run the above test class, you will get below output
just some string another some string more value string
That’s all. Thanks for reading.