2017.06.03 / 15:44
[spring] ÀÎÅͼÁÅÍ ¿Í ÇÊÅÍ
±Ý±Ý±Ý
Ãßõ ¼ö 276
½ºÇÁ¸µ¿¡¼ ÀüÈÄ󸮱â(?)¸¦ ´ã´çÇÏ´Â
ÀÎÅͼÁÅÍ¿Í ÇÊÅͶó´Â°Ô ÀÖ´Ù.
µÑ´Ù ¾Ë°í °è½Å ÈǸ¢ÇÑ °³¹ßÀÚ ºÐµéµµ ¸¹À¸½Ã°ÚÁö¸¸ ¤»
º»ÀÎó·³ ÀÎÅͼÁÅ͸¸ ¾Ë°í ÀÖ´Â °æ¿ì¿¡´Â
°¡º±°Ô¶óµµ ÇÊÅÍ¿¡ ´ëÇؼ ¾Ë¾ÆµÎ½Ã¶ó°í ¸îÀÚ Àû¾î º»´Ù. ¤¾
»ç½Ç ±â´É¸¸ º¸¸é ÀÎÅͼÁÅÍ¿Í ÇÊÅÍ´Â
¹«Ã´ ºñ½ÁÇØ º¸ÀδÙ.
°Ô´Ù°¡ filter·Î ÇØ¾ß µÇ´Â ÀϵéÀº
»ç½Ç interceptor·Î ÇØ°áÇÒ ¼ö ÀÖ´Â µí ÇÏ´Ù.
(Àû¾îµµ º»ÀÎÀÌ ÇÏ°í ÀÖ´Â ÇÁ·ÎÁ§Æ®¿¡¼´Â.. ¤»)
±¸±Û â¿¡´Ù°¡
'difference interceptor and filter'
ÀÇ °Ë»ö°á°ú°¡ ¿©·¯ÆäÀÌÁö ³ª¿À´Â °É º¸¸é
¸¹Àº »ç¶÷µéÀÌ ±Ã±ÝÇØ Çϴ°Ô
´Ù ÀÌ·¯ÇÑ ÀÌÀ¯ÀÎ°Í °°´Ù.
º»·ÐÀ¸·Î µé¾î°¡¼
¿ì¼± ÀÎÅͼÁÅÍ ¼³Á¤ÆÄÀÏÀ» º¸¸é
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/api1/*" /> <mvc:mapping path="/api2/*" /> <mvc:mapping path="/api3/*" /> <bean class="com.changpd.test.interceptor.ÀÎÅͼÁÅÍŬ·¡½º" /> </mvc:interceptor> </mvc:interceptors>
º¸Åë ÀÌ·±½ÄÀ¸·Î ¼±¾ð µÇ¾îÀÖÀ»µí ÇÏ´Ù.
Çؼ®Àº api1,2,3 È£ÃâµÇ±âÀü¿¡ ÀÎÅͼÁÅÍŬ·¡½º¸¦ ¸ÕÀú È£ÃâÇÏ°Ú´Ù.
¹¹ ÀÌ·±¶æÀÌ´Ù.
À̹ø¿£ ÇÊÅÍ ºÎºÐ ¼³Á¤ ÆÄÀÏÀ» º¸¸é
<filter> <filter-name>ÇÊÅÍÀ̸§</filter-name> <filter-class>com.changpd.test.filter.ÇÊÅÍŬ·¡½º</filter-class> </filter> <filter-mapping> <filter-name>ÇÊÅÍÀ̸§</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
À̰͵µ Çؼ®Çغ¸¸é
¾î¶²°Ô È£ÃâµÇµçÁö°£¿¡ (/*) 'ÇÊÅÍÀ̸§' ºÎÅÍ ¸ÕÀú È£ÃâÇÏ°Ú´Ù.
¿ª½Ã³ª ºñ½ÁÇØ º¸ÀδÙ.
ÀÎÅͼÁÅͳª ÇÊÅͳª,
api1,2,3ÀÌ È£ÃâµÇ¸é
°¢°¢ ÀÚ½ÅÀÌ
ÀüÈÄ󸮱⿪ÇÒÀ» ¼öÇàÇÏ·Á´Â ÀǵµÀÌ´Ù.
Â÷ÀÌÁ¡
±×·³ ´ëü ¹¹°¡ ´Ù¸£³Ä¸é
½ºÇÁ¸µ¿¡¼ reqeust°¡ ¾î¶»°Ô Èê·¯´Ù´Ï´ÂÁö°¡ ³ª¿ÍÀÖ´Â ¾Æ·¡ ±×¸²À» º¸¸é Á» ÀÌÇØ°¡ ÇÑ°á ¼ö¿ùÇØÁø´Ù.
ÀÏ´Ü È£ÃâµÇ´Â ½ÃÁ¡ÀÌ ´Ù¸£´Ù.
º¸Åë ÀÎÅͼÁÅͳª ÇÊÅͳª
ÄÁÆ®·Ñ·¯ µé¾î°¡±âÀü¿¡ ÀÛ¾÷À» ó¸® Çϱâ À§ÇØ »ç¿ëÇϹǷÎ
º°¹Ý Â÷ÀÌ ¾ø¾î º¸ÀÏ ¼ö ÀÖÀ¸³ª
À§ÀÇ ¶óÀÌÇÁ»çÀÌŬ ±×¸²À» º¸¸é
È£ÃâµÇ´Â ½ÃÁ¡ÀÌ ´Ù¸£´Ù´Â°É ¾Ë ¼ö ÀÖ´Ù.
»ç¼ÒÇÏÁö¸¸,
ÇÊÅÍÀÇ °æ¿ì´Â ÀÎÅͼÁÅÍ¿Í ´Ù¸£°Ô ¼³Á¤ Á¤º¸¸¦ web.xml¿¡ ÀÛ¼ºÇÑ´Ù.
±×¸®°í ¸¶Áö¸·À¸·Î´Â
¸â¹öÇÔ¼öÀÇ ¿ëµµ°¡ ´Ù¸£´Ù.
ÀÎÅͼÁÅÍ.
- preHandle() : ÄÁÆ®·Ñ·¯ µé¾î°¡±â Àü
- postHanle() : ÄÁÆ®·Ñ·¯ µé¾î°¬´Ù ³ª¿ÂÈÄ ºä·Î º¸³»±âÀü
- afterCompletion() : ºä±îÁö ³¡³ª°í ³ª¼
ÇÊÅÍ.
- init() : ÇÊÅÍ ÀνºÅϽº ÃʱâÈ
- doFilter() : Àü/ÈÄ Ã³¸®
- destroy() : ÇÊÅÍ ÀνºÅϽº Á¾·á
doFilter ÇÔ¼ö´Â º¸Åë ¾Æ·¡Ã³·³ ÀÛ¼ºµÈ´Ù.
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // Àü ó¸® chain.doFilter(request, response); // ÈÄ Ã³¸® }
ÇÊÅÍ´Â doFilter ÇÔ¼ö¿¡¼ ÀüÈÄ󸮸¦ ¸ðµÎ ´ã´çÇϴµ¥
doFilter°¡ ¿äûÀü°ú ÈÄ,
µÎ¹ø È£ÃâµÇ´Â ¹æ½ÄÀÌ´Ù.
°³ÀÎÀûÀ¸·Î Á¤¸®ÇØ º¸¸é
ÀÎÅͼÁÅÍ¿Í ÇÊÅÍÀÇ ±â´ÉÀº ºñ½ÁÇÏÁö¸¸,
ÇÊÅÍÀÇ °æ¿ì
È£Ãâ½ÃÁ¡ÀÌ ÀÚÀ¯·ÓÁö ¸øÇÏ´Ù º¸´Ï
»ç¿ë¼º¿¡¼´Â ºÐ¸í ÀÎÅͼÁÅͺ¸´Ù ¶³¾îÁö´Â ºÎºÐÀÌ ÀÖÀ» µíÇÏ´Ù.