À̷лóÀ¸·Î´Â ÇÁ·ÎÆÛƼ ÆÄÀÏ, RDB , LDAP µð·ºÅ丮µî ¾î¶°ÇÑ °ÍÀ¸·Îµµ ºó ¹±â¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Ù.
±×·¯³ª ¿©±â¼´Â xml¸¦ ÀÌ¿ëÇÑ´Ù.
´ÙÀ½°ú °°Àº ¿©·¯ ½ºÇÁ¸µ ÄÁÅ×À̳ʰ¡ XML À» ÅëÇÑ ºó ¹±â¸¦ Áö¿øÇÑ´Ù.
-. XmlBeanFactory : org.springframework.core.io.FileSystemResource¸¦ »ç¿ëÇØ ÄÁÅؽºÆ® Á¤ÀÇ ÆÄÀÏÀ» ·ÎµùÇÏ´Â ´Ü¼øÇÑ BeanFactory
-. ClassPathXmlApplicationContext : Ŭ·¡½º °æ·Î·ÎºÎÅÍ ÄÁÅؽºÆ® Á¤ÀÇ ÆÄÀÏÀ» ·ÎµùÇÏ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÄÁÅؽºÆ®
-.FileSystemXmlApplicationcontext : ÆÄÀÏ ½Ã½ºÅÛÀ¸·ÎºÎÅÍ ÄÁÅؽºÆ® Á¤ÀÇ ÆÄÀÏÀ» ·ÎµùÇÏ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÄÁÅؽºÆ®
-.XmlWebApplicationContext : À¥ ¾ÖÇø®ÄÉÀÌ¼Ç ÄÁÅؽºÆ®·ÎºÎÅÍ ÄÁÅؽºÆ® Á¤ÀÇ ÆÄÀÏÀ» ·ÎµùÇÏ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ÄÁÅؽºÆ®. ³ªÁß¿¡ ¾Ë¾Æº¸±â·Î ÇÔ.
°£´ÜÇÑ ¿¹Á¦
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!-- ·çÆ® ¿ä¼Ò -->
<beans>
<!-- ºó ÀνºÅϽº ¾Æ·¡ 2°³ -->
<bean id="foo"
class="org.springframework.Foo">
</bean>
<bean id="bar"
class="org.springframework.Bar">
</bean>
</beans>
À§´Â xml¸¦ ÀÌ¿ëÇÑ °£´ÜÇÑ ºó ¹±âÀÌ´Ù. ½ºÇÁ¸µÄÁÅ×À̳ʿ¡ foo¿Í barÀ̶ó´Â µÎ°³ÀÇ ºóÀ» ¹¾ú´Ù.
¾ö¹ÐÈ÷ ¸»ÇÏÀÚ¸é ºó¸¸ µî·ÏÇÑ °ÍÀÌ´Ù.
ºóÃß°¡
½ºÇÁ¸µ ÄÁÅ×ÀÌ³Ê ¾È¿¡ ºóÀ» ¹À¸·Á¸é ºóÀÇ ID¿Í Ç®°æ·ÎÀÇ Å¬·¡½ºÀ̸§ÀÌ ÇÊ¿äÇÏ´Ù.
<bean id="foo" class="org.springframework.Foo"/>
ºóÀÇ ID ºóÀÇ Ç®°æ·ÎÀÇ Å¬·¡½º À̸§
[Âü°í ]
<bean id="foo" class="org.springframework.Foo"></bean> °ú
<bean id="foo" class="org.springframework.Foo"/>Àº µ¿ÀÏÇÏ´Ù
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="studentDao"
class="com.springinaction.training.dao.StudentDaoImpl">
</bean>
<bean id="courseDao"
class="com.springinaction.training.dao.CourseDaoImpl">
</bean>
</beans>
ÇÁ·ÎÅäŸÀÔ°ú ½Ì±ÛÅæ ºñ±³
±âº»ÀûÀ¸·Î springÀÇ ¸ðµç ºóµéÀº ½Ì±ÛÅæÀÌ´Ù. getBean()ÀÇ È£Ãâ¿¡ ÀÇÇؼµç ¹±â¸¦ ÅëÇؼµç °£¿¡, ÄÁÅ×À̳ʰ¡ ºóÀ» ¹èÆ÷ÇÒ ¶§¿¡´Â Ç×»ó ±× ºóÀÇ ¿ÏÀüÈù µ¿ÀÏÇÑ ÀνºÅϽº¸¦ ³»ÁÙ°ÍÀÌ´Ù. Áï, °´Ã¼¸¦ Çϳª ¸¸µé¾î¼ »ç¿ëÇÑ´Ù. ¸¸¾à È£Ãâ½Ã ¸¶´Ù »õ·Î¿î ÀνºÅϽº°¡ »ý¼ºµÇ±â¸¦ ¿øÇÑ´Ù¸é ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÑ´Ù.
<bean id="foo" class="org.springframework.Foo" singleton = "false"/>
ÀÌ ÇÁ·ÎÅäŸÀÔ ºóÀº µ¥ÀÌÅͺ£À̽º³ª ³×Æ®¿öÅ© ¿¬°á°ú °°Àº Á¦ÇÑµÈ ÀÚ¿øÀ» »ç¿ëÇÏ´Â ºóÀÇ °æ¿ì¿¡´Â ³ª»Û ¹æ¹ýÀÌ´Ù. SingletonÀ» false·Î ¼³Á¤ÇÏ´Â °æ¿ì´Â Àý´ëÀûÀ¸·Î ÇÊ¿äÇÑ °æ¿ì¿¡¸¸ »ç¿ëÇϱ⠹ٶõ´Ù.
ÃʱâÈ¿Í ¼Ò¸ê
ºóÀÌ ÀνºÅϽºÈµÉ ¶§¿¡´Â »ç¿ëÇÒ ¼ö ÀÖ´Â »óÅ°¡ µÇ±â À§ÇØ ÃʱâÈ µÇ°Å³ª ´õ ÀÌ»ó »ç¿ëÇÏÁö ¾Ê¾Æ ÄÁÅ×À̳ʷκÎÅÍ Á¦°ÅµÉ¶§¿¡ ÀÏ·ÃÀÇ ÀÛ¾÷À» ÇØ¾ß ÇÒ °æ¿ì°¡ ÀÖ´Ù
Spring¿¡¼´Â ºóÀÇ ÃʱâÈ¿Í ¼Ò¸ê¿¡ °üÇÏ¿© 2°³ÀÇ ¸Þ¼Òµå¸¦ Á¦°øÇÑ´Ù.
ºóÀÇ Á¤Àdz»¿¡ Ä¿½ºÅÒ init-method¸¦ ¼±¾ðÇÔÀ¸·Î½á ºóÀÌ ÀνºÅϽºÈµÇ´Â Áï½Ã È£ÃâµÉ ¸Þ¼Òµå¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¸¶Âù°¡Áö·Î Ä¿½ºÅÒ destroy-method´Â ºóÀÌ ÄÁÅ×À̳ʷκÎÅÍ Á¦°ÅµÇ±â Á÷Àü¿¡ È£ÃâµÈ´Ù.
<bean id="foo" class="org.springframework.Foo"
init-method = "setup" destroy-method = "teardown" />
ÀüÇüÀûÀÎ ¿¹·Î, ´ÙÀ½°ú °°Àº Ä¿³Ø¼Ç Ç®¸µ ºóÀ» µé¼ö ÀÖ´Ù.
public class MyConnectionPool {
¡¦
public void initialize(){
// Ä¿³Ø¼Ç Ç® ÃʱâÈ
}
public void close(){
//Ä¿³Ø¼Ç ¿¬°á ÇØÁ¦
}
}
ºóÀÇ Á¤ÀÇ´Â ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ´Ù.
<bean id="connectionPool" class="com.springinaction.chaper02.MyConnectionPool"
init-method = "initialize" destroy-method = "close" />
ÀÌ·¸°Ô Á¤ÀÇÇϸé, MyConnectionPoolÀÌ ÀνºÅϽºÈ µÇÀÚ¸¶ÀÚ initialize() ¸Þ¼Òµå°¡ È£ÃâµÇ¾î Ä¿³Ø¼Ç Ç®À» ÃʱâÈ ÇÒ ¼ö ÀÖ°í, ¸¶Âù°¡Áö·Î MyConnectionPoolÀÌ ÄÁÅ×À̳ʷκÎÅÍ Á¦°ÅµÇ±â Á÷Àü¿¡ close() ¸Þ¼Òµå°¡ È£ÃâµÇ¾î µ¥ÀÌÅͺ£À̽º ¸®¼Ò½º¸¦ ÇØÁ¦ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
±âº»ÀûÀ¸·Î ½Ì±ÛÅæÀ¸·Î °´Ã¼°¡ »ý¼ºµÇ¾îÁø´Ù. ÇÏÁö¸¸ ±»ÀÌ Ä¿³Ø¼Ç Ç®À» ±¸ÇöÇؼ »ç¿ëÇÒ ÇÊ¿ä°¡ ¾ø´Ù.
Common-DBCP ³ª WAS¿¡¼ Áö¿øÇÏ´Â Ç® °´Ã¼¸¦ »ç¿ëÇϴ°ÍÀÌ ´õ ³´À»°Í °°´Ù.
±×³É ÀÌ·¸°Ô ¾´´Ù´Â °Í¸» ¾Ë¸é µÉ°Í °°´Ù.
SpringÀº InitializingBean °ú DisposableBeanÀ̶ó´Â µ¿ÀÏÇÑ ¿ªÇÒÀ» ÇÏ´Â µÎ°³ÀÇ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÑ´Ù.
InitializingBean ÀÎÅÍÆäÀ̽º´Â afterPropertiesSet()À̶ó´Â ÇϳªÀÇ ¸Þ¼Òµå¸¦ Á¦°øÇϴµ¥, ÀÌ ¸Þ¼Òµå´Â ÇØ´ç ºóÀÌ ÃʱâÈ µÈÈÄ¿¡ Çѹø È£ÃâµÈ´Ù. ¸¶Âù°¡Áö·Î DisposableBean ÀÎÅÍÆäÀ̽º´Â ÇØ´ç ºóÀÌ ÄÁÅ×À̳ʷΠºÎÅÍ Á¦°ÅµÉ¶§ destroy() ¸Þ¼Òµå°¡ È£ÃâµÈ´Ù.
ÀÌ ¹æ¹ýÀÇ ÀåÁ¡Àº À̵é ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ºóÀ» spring ÄÁÅ×À̳ʰ¡ ¾Ë¾Æ¼ È£ÃâÇØ Áشٴ °ÍÀÌ°í ´ÜÁ¡Àº Ä¿Çøµ »ý±ä´Ù´Â Á¡ÀÌ´Ù.
Ã¥¿¡¼´Â springÀÇ ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÒ °æ¿ì´Â spring ÄÁÅ×ÀÌ³Ê ¾È¿¡¼ Ưº°ÇÏ°Ô »ç¿ëµÉ ÇÁ·¹ÀÓ¿öÅ© ºóÀ» °³¹ßÇÒ ¶§»ÓÀ̶ó ÇÑ´Ù.