<±×¸²Ãâó : À¥°³¹ßÀÚ¸¦ À§ÇÑ Spring 2.5 ÇÁ·Î±×·¡¹Ö: ÀúÀÚ ÃÖ¹ü±Õ>
SpringFrameWork´Â À¥À» °³¹ßÇϴµ¥ ÀÖ¾î Full SpecÀ» Áö¿øÇÏ´Â ÇÁ·¹ÀÓ ¿÷ÀÌ´Ù.
SpringMVC·Î À¥°³¹ßÀ» ÇÒ¶§ ÀÛµ¿ ¼ø¼´Â À§ÀÇ ±×¸²°ú °°´Ù.
1. Ŭ¶óÀ̾ðÆ®·Î ºÎÅÍ URLÀÌ ¿äûµÇ¾î µé¾î¿À¸é Á¦ÀϸÕÀú web.xml ÆÄÀÏÀ» ·ÎµùÇÏ¿© ½ºÇÁ¸µ¿¡¼ Áö¿øÇÏ´Â DispatcherServletÀÌ ½ÇÇàµÈ´Ù.
(À̸§¿¡¼ ¾Ë¼ö ÀÖµíÀÌ SpringFramework´Â Servlet ±â¹ÝÀÓÀ¸·Î ½ºÇÁ¸µ¿¡¼ Áö¿øÇØÁÖ´Â Controller¿¡¼´Â HttpServletRequest,HttpServletResponse ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇؼ request, response ÀνºÅϽº¸¦ »ç¿ë ÇÒ ¼ö°¡ ÀÖ´Ù.)
2. DispatcherServletÀº Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ µé¾î¿Â URLÀ» HandlerMapping À̶ó´Â °÷À¸·Î Àü¼ÛÈÄ¿¡ URLÀ» ºÐ¼®Çؼ ¾Ë¸ÂÀº ÄÁÆ®·Ñ·¯ À̸§À» DispatcherServlet À¸·Î º¸³½´Ù.
3. HandlerMappingÀ̶ó´Â °ÍÀ» ÅëÇؼ ½ÇÇàµÉ ControllerÀÇ À̸§À» ÀԷ¹ÞÀº DispatcherServletÀº Àü´Þ¹ÞÀº Controller¸¦ ½ÇÇà ½ÃŲ´Ù. ÀÌ·¸°Ô ½ÇÇàµÈ Controller´Â ½ºÇÁ¸µ¿¡¼ Á¦°øÇÏ´Â ModelAndView °´Ã¼¿¡ ºäÆäÀÌÁö¿¡ Àü´ÞÇÒ °´Ã¼¿Í ºäÆäÀÌÁö À̸§ Á¤º¸¸¦ ´ã°í DispatcherServletÀ¸·Î º¸³½´Ù.
4. ViewResolver¸¦ ÅëÇØ º¸¿©Áú ViewÆäÀÌÁö¸¦ Ž»öÇÑÈÄ ViewÆäÀÌÁö¸¦ º¸¿©ÁØ´Ù.
SpringMVC ÀÇ À¥°³¹ßÀº À§¿Í°°Àº ·çƾÀ¸·Î ¿òÁ÷À̱⠶§¹®¿¡ ½ºÇÁ¸µ Ãʱ⠼³Á¤À» ÇÒ¶§´Â ´ÙÀ½°ú °°ÀÌ ¼ø¼¸¦ »ý°¢ÇÏ¸é¼ ¼ÂÆÃÀ» Çϸé ÀØ¾î ¹ö¸®Áö ¾Ê´Â´Ù.
<½ºÇÁ¸µ ¼³Á¤>
1. web.xml ¼¼ÆÃ
¨ç DispatcherServletÀ» ¼¼ÆÃÇØ ÁØ´Ù.<servlet>
<servlet-name>
dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- ±âº» À§Ä¡´Â [servlet name]-servlet.xml Àº WEB-INF¿¡¼ ºÒ·¯ ¿ÀÁö¸¸ ±âŸ ´Ù¸¥À§Ä¡¿¡ ÀÖÀ»¶§´Â À§Ä¡¸¦ ÁöÁ¤ÇÑ´Ù -->
<init-param>
<param-name>contextConfigLocation</param-name>
<!-- Ŭ·¡½º Æнº¿¡ À§Ä¡ÇÑ ÆÄÀϷκÎÅÍ ¼³Á¤Á¤º¸¸¦ ÀÐÀ¸·Á¸é "classpath:" ¸¦ ºÙÀÌ°í °æ·Î¸¦ ½áÁØ´Ù -->
<!-- ex) classpath:kr/co/springboard/config.xml --> <param-value
>/WEB-INF/config/dispatcher-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>
dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
Url patternÀÌ ~~.do ·Î µé¾î¿À°Ô µÇ¸é À§¿¡ ¼³Á¤¿¡ servlet nameÀÌ dispatcherÀÎ servletÀ» ½ÇÇàÇؼ SpringÀÇ ÇÙ½ÉÀÎ DispatcherServletÀ» ½ÇÇàÇÑ´Ù.
¨è DI ¸¦ ¼±¾ðÇÒ applicationContext ÆÄÀÏÀ» ·ÎµùÇϱâ À§Çؼ ¾Ë¸ÂÀº ¸®½º³Ê¿Í Context ParamÀ» ¼³Á¤ÇØ ÁØ´Ù.<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/config/applicationContext.xml
</param-value>
</context-param>
ContextLoaderListner´Â ±âº»ÀûÀ¸·Î /WEB-INF/applicationContext.xml À» ¼³Á¤ ÆÄÀÏ·Î ·ÎµùÇÑ´Ù.´Ù¸¥À§Ä¡¿¡ ÀÖÀ»¶§ À§¿Í°°ÀÌ context-param¼³Á¤À» ÅëÇØ À§Ä¡¸¦ Á¤ÇØ ÁØ´Ù. ±×¸®°í contextÆÄÀÏÀÌ ¸¹À»¶§´Â ,(ÄÞ¸¶)¸¦ Âï°í ´Ù¸¥ °æ·Î¸¦ ¶Ç ÀÔ·ÂÇÏ¸é µÈ´Ù.
contextÆÄÀÏ À̸§ÀÌ applicationContext.xml °ú applicationContext-ibatis.xml À̶ó¸é applicationContext*.xml À̶ó°í ¼³Á¤Çϸé Çѹø¿¡ µÎ°¡Áö ÆÄÀÏÀ» ºÒ·¯ µéÀδÙ.
¨é encoding ¼³Á¤À» ÇØÁØ´Ù.jsp¿¡¼ response.setCharactorEncoding() ¸Þ¼Òµå¸¦ »ç¿ëÇؼ ÆäÀÌÁö¿¡ ¸Â´Â Äɸ¯ÅͼÂÀ» ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸³ª ½ºÇÁ¸µ¿¡¼´Â À§¿Í °°Àº ¼³Á¤ ¾øÀÌ Äɸ¯ÅÍ ¼ÂÀ» ÁöÁ¤ÇØ ÁÙ ¼ö ÀÖ´Ù.
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>EUC-KR</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2. À§¿¡¼ ¼±¾ðÇÑ dispatcher-servlet.xml ÆÄÀÏÀ» »ý¼ºÇÑ´Ù.
¨ç urlHandlerMappingÀ» ¼³Á¤ÇÑ´Ù.
<bean id="springBoardUrlMapping" class="
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<!-- mappings´Â ¹Ù²î¸é ¾ÈµÈ´Ù. -->
<props>
<prop key="/boardList.do">listAbstractCommandController</prop>
<prop key="/boardWrite.do">writeSimpleFormController</prop>
<prop key="/boardReadDelete.do">readDeleteMultiActionController</prop>
</props>
</property>
</bean>
boardList.do ¶ó´Â url·Î µé¾î¿À¸é listAbstractCommandController Ŭ·¡½º¸¦ ½ÇÇà ½ÃŲ´Ù. ¹°·Ð ÀÌ À̸§Àº ³ªÁß¿¡ ¼³Á¤ÇÒ applicationContext.xml ¿¡ ¼±¾ðµÇ¾îÀÖ´Â beanÀÇ id¿Í °°¾Æ¾ß ÇÑ´Ù.
¨è ModelAndView°´Ã¼¸¦ ¹Þ¾Æ ViewÆäÀÌÁö·Î À̵¿½ÃÄÑÁÙ View Resolver¸¦ ±¸ÇöÇÑ´Ù.
<bean id="viewResolver"
class="
org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value
="/WEB-INF/view/"/>
<property name="suffix" value="
.jsp"/>
</bean>
À§¿Í °°Àº ¼³Á¤À¸·Î ¸¸¾à¿¡ ModelAndView ¿¡ ViewName ÀÌ boardList ¶ó´Â String °ªÀÌ µé¾î ÀÖÀ¸¸é /WEB-INF/view/boardList.jsp ¶ó´Â ÆÄÀÏÀ» ºÎ¸£°Ô µÈ´Ù. prefix´Â °æ·ÎÀÇ ¾Õ¿¡ ºÙ´Â °Í, Áï viewNameÀÇ ¾ÕÂÊ¿¡ ºÙ´Â °Í, subffix´Â viewNameµÚ¿¡ ºÙ´Â°Í, Áï È®ÀåÀÚ¶ó°í »ý°¢ÇÏ¸é µÇ°Ú´Ù.
3.½ºÇÁ¸µ¿¡¼ »ç¿ëÇÒ DI¸¦ applicationContext.xml¿¡ ¼³Á¤ÇÑ´Ù.
4. ±â´É¿¡ ¸Â°Ô °¢Á¾ Controller¸¦ »ç¿ëÇؼ ±¸ÇöÇÑ´Ù.
SpringBoard.war