Spring – Ders 5 Wiring Collection
Merhaba Arkadaslar,
Javada Collection bunyesinde bulunan List , Set , Map, Properties vb yapilarin Spring uzerinde uygulamasini inceleyecegiz.
Burada List, Set gibi konulari detaylica anlatmayacagim, ilerleyen zamanlarda Pure Java derslerimde bunlara da sira gelecek insallah 🙂
Ornekler uzerinde devam edelim.
Friend sifimizda 2 adet instance variable ve getter/setter metotlari olacaktir.
Friend.java
package erguder.levent_05.collection.list; public class Friend { private String fname; private String lname; public String getFname() { return fname; } public void setFname(String fname) { this.fname = fname; } public String getLname() { return lname; } public void setLname(String lname) { this.lname = lname; } }
FriendList sinifimizda ise , List turunde bir degiskenimiz var.
private List <Friend> lists;
Burada <Friend> in anlami , bu listenin sadece Friend turunde olacagini belirtir. Generic konusunu da insallah Java derslerinde yazacagim 🙂 Simdilik bunu bilmemiz yeterlidir.
FriendList.java
package erguder.levent_05.collection.list; import java.util.List; public class FriendList { private List<Friend> lists; public List<Friend> getLists() { return lists; } public void setLists(List<Friend> lists) { this.lists = lists; } public void printList() { for (Friend friend : lists) { System.out.println(friend.getFname() + " " + friend.getLname()); } } }
tutorial_05_list.xml
<?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-3.0.xsd"> <bean id="friendId" class="erguder.levent_05.collection.list.Friend"> <property name="fname" value="Levent" /> <property name="lname" value="Erguder" /> </bean> <bean id="friendListId" class="erguder.levent_05.collection.list.FriendList"> <property name="lists"> <list> <ref bean="friendId" /> <bean class="erguder.levent_05.collection.list.Friend"> <property name="fname" value="Orcun" /> <property name="lname" value="Erpis" /> </bean> <bean class="erguder.levent_05.collection.list.Friend"> <property name="fname" value="Burak" /> <property name="lname" value="Okumus" /> </bean> <bean class="erguder.levent_05.collection.list.Friend"> <property name="fname" value="Recep" /> <property name="lname" value="Bostanci" /> </bean> </list> </property> </bean> </beans>
xml dosyamizi inceleyecek olursak ,
<bean id="friendBeanId" class="erguder.levent_05.collection.list.Friend"> <property name="fname" value="Levent" /> <property name="lname" value="Erguder" /> </bean>
Friend sinifimiz icin <bean> tanimlamasini yaptik ve daha onceki orneklerde yaptigimiz gibi <property> etiketini kullanarak name ve value ozelliklerinden yararlanarak fname ve lname degiskenlerine deger atamasi yaptik.
FriendList <bean> tanimlamasinda ise , <list> etiketini kullanarak , referans bean tanimlamizi da verdik (<ref bean=”friendBeanId”/> ) . fname ve lname degerlerine value ozelligini kullanarak deger atadik.
Test sinifimizi calistirip sonuclari ekrana yazdiralim…
FriendListTest.java
package erguder.levent_05.collection.list; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class FriendListTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("tutorial_05_list.xml"); FriendList fl = (FriendList)context.getBean("friendListId"); fl.printList(); } }
printList() metodumuzda Listemizin icerigini yazdiriyoruz …
Levent Erguder
Orcun Erpis
Burak Okumus
Recep Bostanci
Set koleksiyon yapisi da benzer sekilde yapilabilir. Dersin sonundaki ornekte Set ornegi de olacaktir. Burada Map yapisini incelemeye devam edelim.
Map yapisinda anahtar-deger iliskisi vardir (key,value). Friend.java sinifimiz bu ornek icinde ayni olacaktir.
FriendMap.java
package erguder.levent_05.collection.map; import java.util.Map; import java.util.Map.Entry; public class FriendMap { private Map<Object, Friend> maps; public Map<Object, Friend> getMaps() { return maps; } public void setMaps(Map<Object, Friend> maps) { this.maps = maps; } public void printMap() { for (Entry<Object, Friend> key : maps.entrySet()) { System.out.println(key.getKey()+" , "+key.getValue().getFname() + " " + key.getValue().getLname()); } } }
tutorial_05_map.xml
<?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-3.0.xsd"> <bean id="friendMapId" class="erguder.levent_05.collection.map.FriendMap"> <property name="maps"> <map> <entry key="Key 1" value-ref="friendId" /> <entry key="Key 2"> <bean class="erguder.levent_05.collection.map.Friend"> <property name="fname" value="Serkan" /> <property name="lname" value="Daglioglu" /> </bean> </entry> <entry key="Key 3"> <bean class="erguder.levent_05.collection.map.Friend"> <property name="fname" value="Cagri" /> <property name="lname" value="Cetin" /> </bean> </entry> </map> </property> </bean> <bean id="friendId" class="erguder.levent_05.collection.map.Friend"> <property name="fname" value="Ozkan" /> <property name="lname" value="Ozbas" /> </bean> </beans>
xml dosyamizi inceleyecek olursak , <map> etiketini kullandik. <entry> etiketi ile anahtar-deger iliskini kurabiliriz.<value-ref> etiketi ile deger icin refarans gosterebildigimiz gibi anahtar tanimlamasindan sonra da degerleri verebiliriz.
Test sinifimizi calistirdigimizda printMap() metodu calisacaktir….
FriendMapTest.java
package erguder.levent_05.collection.map; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class FriendMapTest { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("tutorial_05_map.xml"); FriendMap fm = (FriendMap)context.getBean("friendMapId"); fm.printMap(); } }
Key 1 , Ozkan Ozbas
Key 2 , Serkan Daglioglu
Key 3 , Cagri Cetin
Kaynak Kodlar: SpringProject_v5
Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
injavawetrust
Leave a Reply