¼¼ÅÍ ¸Þ¼Òµå¶ó´Â °ÍÀº ÀÚ¹Ùºó¿¡¼ »ç¿ëÇÏ´Â °ÍÀ» ¸»ÇÑ´Ù. ¿¹¸¦ µé¾î ºóÀÇ ¼Ó¼ºÀ¸·Î maxStudents¶ó °í Á¸ÀçÇÏ¸é ´ÙÀ½°ú °°Àº getter ¿Í setter ¸Þ¼Òµå°¡ µÈ´Ù.
public void setMaxStudents(int maxStudents){
this.maxStudents = maxStudents;
}
public void getMaxStudents(int maxStudents){
return maxStudents;
}
<bean>ÀÇ ÇÏÀ§¿ä¼ÒÀÎ <property>°¡ ¹Ù·Î ¼ÂÅÍ ¸Þ¼Òµå¸¦ ÅëÇØ ºóÀÇ ¼Ó¼º¿¡ °ªÀ» ¼ÂÆÃ(ÁÖÀÔ)ÇÏ´Â ¼ö´ÜÀÌ µÈ´Ù. ¼³Á¤ÇÏ°íÀÚ ÇÏ´Â ¼Ó¼º°ú ±× ¼Ó¼º¿¡ ¼ÂÆÃÇÏ°íÀÚÇÏ´Â °ªÀ» ¾Æ·¡¿Í °°ÀÌ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.
<bean id = "foo" class = "com.springinaction.Foo">
<property name = "maxStudents"><value>30</value>
</property>
</bean>
´Ü¼øÇÑ ºó ¼³Á¤
ºóÀÌ int³ª String °ú °°Àº ´Ü¼øÇÑ Å¸ÀÔÀÇ ¼Ó¼ºÀ» °®´Âµ¥ , ¿ø½Ã ÀÚ·áÇü(primitive type) ºÎÅÍ ÁýÇÕ(collection) , ½ÉÁö¾î´Â ¾ÖÇø®ÄÉÀÌ¼Ç ³»ÀÇ ´Ù¸¥ ºó±îÁö ¾î¶²°ÍÀ̵ç ÁÖÀÔÇÒ ¼ö ÀÖ´Ù.
¿ø½Ã ÀÚ·áÇü : byte, char, int , long, doube µî°ú °°Àº ±âº»ÀûÀ¸·Î Á¦°øµÇ´Â µ¥ÀÌÅÍ Å¸ÀÔ
ÁýÇÕ : ArrayList, HashSet, Vector µî°ú °°Àº Ä÷º¼Ç °è¿, HashMap, Hashtable, TreeMap µî°ú °°Àº ¸Ê °è¿, ¹è¿µî ÀÚ¹Ù API¿¡¼ Á¦°øµÇ´Â µ¥ÀÌÅÍ Å¸ÀÔ
±Ùµ¥ ´«Ä¡ ºü¸¥ »ç¶÷À̶ó¸é À§ÀÇ ÃÖ´ëÇлý¼ö¸¦ ¼ÂÆÃÇϴµ¥ ÀÖ¾î, 30À̶ó´Â °ÍÀ» int Çü ¶Ç´Â StringÀ¸·Î ÇÒ¼ö ÀÖ´Ù. ¾î´À°ÍÀϱ
´äÀº spring ÄÁÅ×À̳ʿ¡¼ ¼³Á¤µÉ ¼Ó¼ºÀÇ Å¸ÀÔÀ» ÀÚµ¿À¸·Î ÆÇ´ÜÇØ °ªÀ» ÀûÀýÇÏ°Ô º¯È¯½ÃÄÑÁØ´Ù.
´Ù¸¥ ºó ÂüÁ¶Çϱâ
<property> ¿ä¼Ò¸¦ »ç¿ëÇÏ¿© ´Ù¸¥ ºóÀ» ÂüÁ¶Çϴ Ư¼ºÀ» ¼³Á¤ÇÒ ¼ö Àִµ¥, ´ÙÀ½°ú °°´Ù.
<bean id = "foo" class = "com.springinaction.Foo">
<property name = "bar">
<ref>30</value>
</property>
</bean>
³»ºÎºó
ÀÚÁÖ »ç¿ëµÇÁö´Â ¾ÊÁö¸¸ ºóÀÇ ÂüÁ¶¸¦ ¿«´Â ¶Ç ´Ù¸¥ ¼ö´ÜÀ¸·Î¼, <property> ¿ä¼Ò¿¡ Á÷Á¢ <bean> ¿ä¼Ò¸¦ ³¢¿ö ³Ö´Â ¹æ¹ýÀÌ ÀÖ´Ù.
<bean id = "courseService" class= "com.springinaction.service.training.CourseServiceImpl">
<property name = "studentService">
<bean class="com.springinaction.service.training.StudentServiceImpl"/>
</property>
</bean>
ÀÌ¿Í °°ÀÌ ºóÀÇ ÂüÁ¶¸¦ ¹´Â ¹æ¹ýÀÇ ´ÜÁ¡Àº StudentServiceImplÀÇ ÀνºÅϽº°¡ ´Ù¸¥°÷¿¡¼ Àç»ç¿ëµÇÁö ¸øÇϴ´ٴ Á¡ÀÌ´Ù. StudentServiceImpl Ŭ·¡½º´Â courseServiceºó¿¡ ÀÇÇؼ¸¸ »ç¿ëµÉ ¸ñÀûÀ¸·Î Ưº°È÷ »ý¼ºµÇ¾ú´Ù°í ºÁ¾ß ÇÑ´Ù. ¹°·Ð °¡µ¶¼ºµµ ¶³¾îÁø´Ù.
ÀÌ·± °æ¿ì´Â AOP ÇÁ·Ï½Ã¸¦ ¸¸µé¶§ BeanFactory¿¡¼ ´ë»ó ºóÀ» Á÷Á¢ Á¢±ÙÇÏÁö ¸øÇÏ°Ô ÇÏ°í ½ÍÀº °æ¿ì ÇØ´çµÉ°ÍÀÌ´Ù.
°´Ã¼ ÁýÇÕ ¹±â
SpringÀº ¼Ó¼ºÀÌ Set À̰ųª List µîÀÇ Áö¿øÇÑ´Ù.
Xml |
ŸÀÔ |
<list> |
Java.util.List, ¹è¿ |
<set> |
Java.util.Set |
<map> |
Java.util.Map |
<props> |
Java.util.Properties |
¸®½ºÆ®³ª ¹è¿ ¹±â
<property name = "barList">
<list>
<value>bar1</value>
<ref bean = "bar2"/>
</list>
</property>
³ªÁß¿¡ spring Æ®·¹ÀÌ´× ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ÇÏÀ̹ö³×ÀÌÆ®¸¦ »ç¿ëÇÏ¿© °´Ã¼¸¦ ¿µ¼Ó½ÃÅ°´Â ¹æ¹ýÀ» º¸°ÔµÉ°ÍÀÌ´Ù. ±×·¯³ª <list>¸¦ »ç¿ëÇÏ¿© List ¼Ó¼ºÀ» ¹´Â ¿¹¸¦ º¸¿©ÁÖ±â À§ÇØ º¸¸é, spring°ú ÇÏÀ̹ö³×ÀÌÆ®¸¦ »ç¿ëÇÒ ¶§¿¡´Â LocalSessionFactoryBeanÀ̶ó´Â ºóÀ» ÄÁÅ×ÀÌ³Ê ¾È¿¡ ¹°Ô µÈ´Ù.
LocalSessionFactoryBeanÀº mappingResources¶ó´Â Ư¼ºÀ» °®´Âµ¥, ÀÌ Æ¯¼ºÀº ÇÏÀ̹ö³×ÀÌÆ® ¸ÅÇÎ ÆÄÀÏÀÇ À̸§µéÀ» ´ã´Â StringÀÇ List¸¦ ÃëÇÑ´Ù. ´ÙÀ½Àº ÇÏÀ̹ö³×ÀÌÆ®¿¡ ´ëÇØ ¾ê±âÇÒ¶§ ¼Ò°³ÇÏ°Ô µÉ ºó ¹±â ÆÄÀÏÀÇ xml ÄÚµåÀÇ ÀϺÎÀÌ´Ù.
<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<property name="mappingResource">
<list>
<value>/com/springinaction/training/model/Course.hbm.xml</value>
<value>/com/springinaction/training/model/Student.hbm.xml</value>
</list>
</property>
¡¦
</bean>
<list>¾È¿¡´Â <value>¸¸ »ç¿ëÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù. <ref>, <list>¿Í °°Àº ¶Ç ´Ù¸¥ ÁýÇÕÀ» Æ÷ÇÔÇÏ¿©, ´ÜÀÏ ¼Ó¼º¿¡¼ À¯È¿ÇÑ ¾î¶² ¿ä¼Ò¶óµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
Set ¹±â
ºóÀÇ ÁýÇÕ³»¿¡¼ÀÇ À¯ÀϼºÀ» º¸ÀåÇÏ´Â java.util.Set ÀÇ ¼Ó¼ºÀº ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÑ´Ù.
<property name = "barSet">
<set>
<value>bar1</value>
<ref bean = "bar2"/>
</set>
</property>
¸Ê ¹±â
Java.util.MapÀº Å°°ª°ú ±×¿¡ ÇØ´çÇÏ´Â °ªÀ» °¡Áö´Â ±¸Á¶ÀÌ¸ç ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÑ´Ù.
<property name = "barMap">
<map>
<entry key="key1">
<value>bar1</value>
</entry>
<entry key="key2">
<ref bean = "bar2"/>
</entry>
</map>
</property>
ÁÖÀÇÇÒÁ¡Àº <entry>¸¦ ¹À»¶§, key ¼Ó¼ºÀÌ StringÀÌ´Ù.
¼Ó¼º ¹±â
Java.util.Proerties¿¡ ÇØ´çÇÏ´Â ÁýÇÕ À¯ÇüÀÌ´Ù. ¸Ê°ú Â÷ÀÌÁ¡Àº String Çü¸¸ °¡´ÉÇÏ´Ù
<property name = "barProps">
<props>
<prop key="key1">bar1</prop>
<prop key="key2">bar2</prop>
</props>
</property>
Null °ª ¼³Á¤
ºóÀÇ ¼Ó¼º°ªÀÌ null·Î ÁöÁ¤ÇÒ ¶§´Â ¾Æ·¡¿Í °°ÀÌ ÇÏ¸é µÈ´Ù.
<property name="foo"><null/></proerty>
Spring¿¡¼´Â ¸í½ÃÀûÀ¸·Î ¼Ó¼ºÀ» ¹Áö ¾ÊÀ¸¸é, ±× ¼Ó¼ºÀ» nullÀ̶ó »ý°¢ÇÒ ¼ö ÀÖ´Ù. ÇÏÁö¸¸ Ç×»ó ±×·¸Áö ¾Ê´Ù´Â °ÍÀÌ´Ù. ¿ì¼± ºó ÀÚ½ÅÀÌ ¼Ó¼ºÀ» »ý¼ºÀÚ¿¡ ÀÇÇØ °ªÀÌ ¼ÂÆà µÉ¼ö ÀÖÀ¸¸ç, ³ªÁß¿¡ º¸°ÔµÉ ÀÚµ¿¹±â(autowiring)¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡´Â ¼Ó¼ºÀÌ ³»ºÎÀûÀ¸·Î ¹ÀÏ ¼ö ÀÖ´Ù. ±×·¡¼ ¸í½ÃÀûÀ¸·Î null·Î ÇÏ°í ½ÍÀ»¶§ »ç¿ëÇÑ´Ù.
¼¼ÅÍ ÁÖÀÔÀÇ ´ë¾È
¼¼ÅÍ ÁÖÀÔÀÇ ´ÜÁ¡Àº ºóÀÇ ¼Ó¼ºÀÌ ¾ðÁ¦µçÁö ¼¼ÅÍ¿¡ ÀÇÇؼ º¯°æµÉ °¡´É¼ºÀÌ ÀÖ´Ù´Â °ÍÀÌ´Ù.
¿¹¸¦ µé¾î ¾î¶² ¼Ó¼ºÀº ºóÀÌ »ý¼ºµÉ¶§ Çѹø¸¸ ¼³Á¤µÇ°í ±× ÀÌÈÄ¿¡´Â º¯°æµÉ ¼ö ¾øµµ·Ï ÇÏ°í½ÍÀº °æ¿ìÀÌ´Ù.
ÇÑ°¡Áö ´ë¾ÈÀº ¼Ó¼ºÀ» »ý¼ºÀÚ¸¦ ÅëÇØ ¼³Á¤µÉ ¼ö ÀÖµµ·Ï ºóÀ» ¼³°èÇÏ´Â °ÍÀÌ´Ù.