Saturday 8 June 2013

How to use Map Collection Injection or Wiring in Spring?



Map Collection Wiring in Spring 


For the System requirements, project required jars and project creation setup steps please refer the below links:-

http://www.javatechtipssharedbygaurav.com/2013/06/collection-injection-in-spring.html

Example of Spring Map property or Map Collection injection in spring.



WorldWonders.java

packagecom.spring.gaurav.collection.map.use.example;

public class WorldWonders {

            privateString wondersName;
            privateString wondersCountriesName;

            publicString getWondersName() {
                        returnwondersName;
            }

            publicvoid setWondersName(String wondersName) {
                        this.wondersName = wondersName;
            }

            publicString getWondersCountriesName() {
                        returnwondersCountriesName;
            }

            publicvoid setWondersCountriesName(String wondersCountriesName) {
                        this.wondersCountriesName = wondersCountriesName;
            }

}

WondersEra.Java

packagecom.spring.gaurav.collection.map.use.example;

import java.util.Map;

public class WondersEra {
            privateMap<Object, Object> ancientAndModernWonders;

            publicMap<Object, Object> getAncientAndModernWonders() {
                        returnancientAndModernWonders;
            }

            publicvoid setAncientAndModernWonders(
                                    Map<Object, Object> ancientAndModernWonders) {
                        this.ancientAndModernWonders = ancientAndModernWonders;
            }

}

collection-map-use-in-spring-framework.xml

<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-3.0.xsd">

            <bean id="wondersEraBeanId" class="com.spring.gaurav.collection.map.use.example.WondersEra">
                        <property name="ancientAndModernWonders">

                                    <map>

                                                <entry key="EGYPT" value="GREAT PYRAMID OF GIZA" />
                                                <entry key="IRAQ" value="HANGING GARDENS OF BABYLON"/>
                                                <entry key="GREECE" value="STATUE OF ZEUS AT OLYMPIA"/>
                                                <entry key="TURKEY" value="TEMPLE OF ARTEMIS" />
                                                <entry key="BODRUM, TURKEY" value="MAUSOLEUM AT HALICARNASSUS" />
                                                <entry key="RHODES, GREEK ISLAND" value="COLOSSUS OF RHODES" />
                                                <entry key="ALEXANDRIA, EGYPT" value="LIGHTHOUSE OF ALEXANDRIA" />

                                                <!-- We can add key - value pair in the map in the below two formats,
                                                            first by directly adding the bean or second by adding the referenced bean -->

                                                <entry key="modernWorldWondersId1">
                                                            <bean class="com.spring.gaurav.collection.map.use.example.WorldWonders">
                                                                        <property name="wondersName" value="GREAT WALL OF CHINA"/>
                                                                        <property name="wondersCountriesName" value="CHINA" />
                                                            </bean>
                                                </entry>
                                                <entry key="modernWorldWondersId2" value-ref="modernWorldWonders2"/>
                                                <entry key="modernWorldWondersId3" value-ref="modernWorldWonders3"/>
                                                <entry key="modernWorldWondersId4" value-ref="modernWorldWonders4"/>
                                                <entry key="modernWorldWondersId5" value-ref="modernWorldWonders5"/>
                                                <entry key="modernWorldWondersId6" value-ref="modernWorldWonders6"/>
                                                <entry key="modernWorldWondersId7" value-ref="modernWorldWonders7"/>
                                    </map>

                        </property>
            </bean>

            <bean id="modernWorldWonders2"
                        class="com.spring.gaurav.collection.map.use.example.WorldWonders">
                        <property name="wondersName" value="PETRA" />
                        <property name="wondersCountriesName" value="JORDAN" />
            </bean>
            <bean id="modernWorldWonders3"
                        class="com.spring.gaurav.collection.map.use.example.WorldWonders">
                        <property name="wondersName" value="CHRIST THE REDEEMER"/>
                        <property name="wondersCountriesName" value="BRAZIL" />
            </bean>
            <bean id="modernWorldWonders4"
                        class="com.spring.gaurav.collection.map.use.example.WorldWonders">
                        <property name="wondersName" value="MACHU PICCHU" />
                        <property name="wondersCountriesName" value="PERU" />
            </bean>
            <bean id="modernWorldWonders5"
                        class="com.spring.gaurav.collection.map.use.example.WorldWonders">
                        <property name="wondersName" value="CHICHEN ITZA" />
                        <property name="wondersCountriesName" value="MEXICO" />
            </bean>
            <bean id="modernWorldWonders6"
                        class="com.spring.gaurav.collection.map.use.example.WorldWonders">
                        <property name="wondersName" value="COLOSSEUM" />
                        <property name="wondersCountriesName" value="ITALY" />
            </bean>
            <bean id="modernWorldWonders7"
                        class="com.spring.gaurav.collection.map.use.example.WorldWonders">
                        <property name="wondersName" value="TAJ MAHAL" />
                        <property name="wondersCountriesName" value="INDIA" />
            </bean>


</beans>


MapCollectionUseInSpringFrameworkClient.java

packagecom.spring.gaurav.collection.map.use.example;

import java.util.Map;

importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;

public classMapCollectionUseInSpringFrameworkClient {
            publicstatic void main(String args[]) {

                        WorldWonders worldWonders = null;

                        ApplicationContext context = new ClassPathXmlApplicationContext(
                                                "collection-map-use-in-spring-framework.xml");

                        WondersEra wondersEra = (WondersEra) context
                                                .getBean("wondersEraBeanId");
                        Map<Object, Object> worldWondersMap = wondersEra
                                                .getAncientAndModernWonders();
                        System.out.println("ANCIENT AND  MODERNS WONDERS OF THE WORLD ");
                        System.out.println("********************************************");

                        for(Map.Entry<Object, Object> entry : worldWondersMap.entrySet()) {

                                    if(entry.getKey().equals("modernWorldWondersId1")
                                                            || entry.getKey().equals("modernWorldWondersId2")
                                                            || entry.getKey().equals("modernWorldWondersId3")
                                                            || entry.getKey().equals("modernWorldWondersId4")
                                                            || entry.getKey().equals("modernWorldWondersId5")
                                                            || entry.getKey().equals("modernWorldWondersId6")
                                                            || entry.getKey().equals("modernWorldWondersId7")) {
                                                worldWonders = (WorldWonders) entry.getValue();
                                                System.out.println("\nCOUNTRY NAME = "
                                                                        + worldWonders.getWondersCountriesName()
                                                                        + " || MODERN WOLRD WONDERS = " + worldWonders.getWondersName());
                                    } else {

                                                System.out.println("COUNTRY NAME = " + entry.getKey()
                                                                        + " || ANCIENT WOLRD WONDERS = " + entry.getValue());
                                    }
                        }
            }
}


Result:-

log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
ANCIENT AND  MODERNS WONDERS OF THE WORLD
********************************************
COUNTRY NAME = EGYPT || ANCIENT WOLRD WONDERS = GREAT PYRAMID OF GIZA
COUNTRY NAME = IRAQ || ANCIENT WOLRD WONDERS = HANGING GARDENS OF BABYLON
COUNTRY NAME = GREECE || ANCIENT WOLRD WONDERS = STATUE OF ZEUS AT OLYMPIA
COUNTRY NAME = TURKEY || ANCIENT WOLRD WONDERS = TEMPLE OF ARTEMIS
COUNTRY NAME = BODRUM, TURKEY || ANCIENT WOLRD WONDERS = MAUSOLEUM AT HALICARNASSUS
COUNTRY NAME = RHODES, GREEK ISLAND || ANCIENT WOLRD WONDERS = COLOSSUS OF RHODES
COUNTRY NAME = ALEXANDRIA, EGYPT || ANCIENT WOLRD WONDERS = LIGHTHOUSE OF ALEXANDRIA

COUNTRY NAME = CHINA || MODERN WOLRD WONDERS = GREAT WALL OF CHINA

COUNTRY NAME = JORDAN || MODERN WOLRD WONDERS = PETRA

COUNTRY NAME = BRAZIL || MODERN WOLRD WONDERS = CHRIST THE REDEEMER

COUNTRY NAME = PERU || MODERN WOLRD WONDERS = MACHU PICCHU

COUNTRY NAME = MEXICO || MODERN WOLRD WONDERS = CHICHEN ITZA

COUNTRY NAME = ITALY || MODERN WOLRD WONDERS = COLOSSEUM

COUNTRY NAME = INDIA || MODERN WOLRD WONDERS = TAJ MAHAL

No comments:

Post a Comment