๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring/Spring Quick Start

IntelliJ๋กœ, Spring ํ”„๋กœ์ ํŠธ(maven) ์ƒ์„ฑํ•˜๊ธฐ

 

๐Ÿ’ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

1. maven์˜ webapp์œผ๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•œ๋‹ค.

maven์„ ์ด์šฉํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ pom.xml ํŒŒ์ผ๊ณผ webapp ๋””๋ ‰ํ† ๋ฆฌ ๋ฐ‘์— webapplication ์„ค์ •์„ ์œ„ํ•œ web.xml ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค.

 

2. pom.xml์— <dependency>์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

์Šคํ”„๋ง 5.3.2๋กœ ์ž‘์„ฑํ–ˆ๋˜ pom.xml์€ ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

16๋ฒˆ์งธ ์ค„ ์ดํ›„ (properties)๋กœ ๋ณต๋ถ™ํ•ด์ค€๋‹ค.

๋ฐ‘์— ๋ฒ„ํŠผ ํด๋ฆญํ•˜๋ฉด reload ๋œ๋‹ค.

 

3. Spring MVC ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.

๋ฃจํŠธํด๋” ์šฐํด๋ฆญ ํ›„ > Add Frameworks Support > Spring MVC ํ•˜๋ฉด

webapp directory์— applicationContext.xml์™€ dispatcher-servlet.xml์ด ์ƒ์„ฑ๋œ๋‹ค.

web.xml ํŒŒ์ผ๋„ ๋‚ด์šฉ์ด ์กฐ๊ธˆ ๋ณ€ํ•œ๋‹ค.

applicationContext.xml์€ src/main/resources/"์—ฌ๊ธฐ"์— ๋‘”๋‹ค. resources ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค๊ณ  ํŒŒ์ผ์„ ์ด๋™์‹œํ‚ค์ž.

 

ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ๋ถ„๋“ค์€ add frameworks support ์ฐฝ์—์„œ spring mvc ์„ ํƒ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์—†์„ํ…๋ฐ, ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ

2๋ฒˆ๊ณผ 3๋ฒˆ์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๋ฉด servlet should have a mapping ์ด๋ผ๋“ ๊ฐ€ filter should have a mapping ์ด๋ผ๋Š” ์—๋Ÿฌ๋กœ ๋‘์‹œ๊ฐ„ ์ด์ƒ ์‚ฝ์งˆํ•˜๋Š” ๊ดด๋กญํž˜์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค... ๐Ÿ’ฅ

4. web.xml ํŒŒ์ผ์„ ์ž‘์„ฑํ•œ๋‹ค.

web.xml์˜ ๊ตฌ๋™์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ์ด๋Ÿฌํ•˜๋‹ค.

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์•„๋‹Œ Web Application ์‹œ์ž‘ ์‹œ(ํ†ฐ์บฃ ์„œ๋ฒ„๋ฅผ ์ฒ˜์Œ ๊ตฌ๋™ ์‹œ) web.xml ํŒŒ์ผ์„ ๋กœ๋”ฉํ•˜์—ฌ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑํ•œ๋‹ค.

๋”ฐ๋ผ์„œ web.xml์„ ์ˆ˜์ •์„ ํ•  ๊ฒฝ์šฐ web application์„ ์žฌ์‹œ์ž‘ ํ•ด์•ผํ•œ๋‹ค.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">
    <filter>
        <filter-name>characterEncoding</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>characterEncoding</filter-name>
        <url-pattern>*.do</url-pattern>
    </filter-mapping>


    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


    <!-- <servlet-name>์„ ๋”ด dispatcher-servlet.xml์ด controller ์„ค์ • ํŒŒ์ผ -->
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
</web-app>

์Šคํ”„๋ง์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” CharacterEncodingFilter, ContextLoaderListener, DispatcherServlet ํด๋ž˜์Šค๋ฅผ ์•ฝ๊ฐ„์˜ ์„ค์ •๊ณผ ํ•จ๊ป˜ ๋“ฑ๋กํ•œ ๊ฒƒ์ด๋‹ค.

์ด ํŒŒ์ผ์˜ ๋‚ด์šฉ๊ณผ ์„œ๋ธ”๋ฆฟ/์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํฌํ•จํ•œ ์ž‘๋™ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ์„ค๋ช…ํ–ˆ๋‹ค.

*์ฐธ๊ณ 

์•ž์„œ์„œ applicationContext.xml์„ ์˜ฎ๊ฒผ๋Š”๋ฐ, ์ด๋ฅผ ์ธ์‹ํ•˜๊ธฐ ์œ„ํ•ด  src/main/resources๋Š” classpath๋กœ ๋ณดํ†ต ์ง€์ •๋˜์–ด์žˆ์œผ๋ฏ€๋กœ classpath:๋กœ ์ง€์ •ํ•ด์ฃผ์—ˆ๋‹ค.

(๋งŒ์•ฝ ์ง€์ •์ด ์•ˆ๋˜์—ˆ๋‹ค๋ฉด ์ง€์ •ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.)

 

4-1. ํ†ฐ์บฃ ์„œ๋ฒ„๋กœ ์‹คํ–‰ํ•ด๋ณด์ž!

์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ์—์„œ ์„ค๋ช…ํ–ˆ๋‹ค.