๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์›น๊ณต๋ทฐ/์Šคํ”„๋ง

[spring] ๋ฆฌ์•กํŠธ ๋นŒ๋“œ๋œ ํŒŒ์ผ ์Šคํ”„๋ง์— ๋ถ™์ด๊ธฐ (๋ฆฌ์†Œ์Šค ํ•ธ๋“ค๋Ÿฌ ์ด์šฉ)

by ์ด๋…ธํ‚ค_ 2022. 7. 13.

*๊ตฌ์„ฑํ™˜๊ฒฝ
- ์ „์ž์ •๋ถ€ํ”„๋ ˆ์ž„์›Œํฌ ์Šคํ”„๋ง ์‚ฌ์šฉ
- @RestController ์ด์šฉ. jsp ์‚ฌ์šฉ์•ˆํ•จ.
- ํ”„๋ก ํŠธ๋Š” ๋ฆฌ์•กํŠธ๋กœ ์‚ฌ์šฉ

0. ๋ฆฌ์•กํŠธ์—์„œ ๋นŒ๋“œ๋œ ๋””๋ ‰ํ† ๋ฆฌ ํŒŒ์ผ์„ ~/src/main/webapp/์— ๋ณต์‚ฌํ–ˆ๋‹ค. 
๋‚˜์˜ ๊ฒฝ์šฐ์—๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ช…์ด "dist" ์ด๋ฏ€๋กœ ์ „์ฒด ๊ฒฝ๋กœ๋Š” ~/src/main/webapp/dist๊ฐ€ ๋˜๊ฒ ๋‹ค. 

 

1. ๋ฆฌ์†Œ์Šค ํ•ธ๋“ค๋Ÿฌ ํด๋ž˜์Šค ์ถ”๊ฐ€ 
- ResourceConfig ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€(์ž„์˜์˜ ํด๋ž˜์Šค๋ช…์ด๋‹ค) ํ•˜๊ณ  WebMvcConfigurer ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ implementsํ•œ๋‹ค.

public class ResourceConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/app/**").addResourceLocations("/", "/dist/");
    }
 ....
}

localhost:{port}/app/~ ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ์š”์ฒญ์€ "/dist/" ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์ฐพ๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค. 

 

2. annotaion ์ถ”๊ฐ€

@Configuration
@EnableWebMvc 
public class ResourceConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/app/**").addResourceLocations("/", "/dist/");
    }
	...
}

๋ฆฌ์†Œ์Šค ํ•ธ๋“ค๋Ÿฌ์— ๋Œ€ํ•œ ์˜ˆ์ œ๋ฅผ ๊ตฌ๊ธ€๋งํ•  ๋•Œ๋งˆ๋‹ค ๊ณผ์ • 1. ๊ณผ๊ฐ™์€ ์˜ˆ์ œ๋Š” ๋งŽ์€๋ฐ ์–ด๋…ธํ…Œ์ด์…˜์€ ์ค‘ํžˆ ๋‹ค๋ฃจ์ง€ ์•Š์•„ ๋‚˜ ๋˜ํ•œ @configuration ์ด๊ฒƒ๋งŒ ๋‹ฌ์•˜์—ˆ๋‹ค. 
์•„๋ฌด๋ฆฌํ•ด๋„ ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๊ฐ€ ์•ˆ๊ฑธ๋ฆฌ๊ธธ๋ž˜ ์˜์–ด๋กœ ๊ฒ€์ƒ‰์„ํ–ˆ๋”๋‹ˆ @EnableWebMvc ์–ด๋…ธํ…Œ์ด์…˜ ์ถ”๊ฐ€ํ•˜๋ผ๋Š” ๋ง์ด ์žˆ์–ด์„œ ์ถ”๊ฐ€ํ–ˆ๊ณ . ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค. 
์—ญ์‹œ ์˜์–ด๋ฅผ... ๊ณต๋ถ€ํ•ด์•ผ์ง€.

 

3. ~.xml

- appConfig.xml : db ๊ด€๋ จ ์„ค์ • ๋‚ด์šฉ๋งŒ ์žˆ๋‹ค. ์ˆ˜์ •์‚ฌํ•ญ ์—†์Œ.
- dispatcher-servlet.xml : ์ปจํŠธ๋กค๋Ÿฌ ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์˜ ๋ฒ ์ด์Šค ํŒจํ‚ค์ง€๋งŒ ์„ ์–ธ๋˜์–ด์žˆ๋‹ค.  ์ˆ˜์ •์‚ฌํ•ญ ์—†์Œ.
- web.xml : servlet๊ณผ ๊ด€๋ จ๋œ ์„ค์ • ๋‚ด์šฉ์ด๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ˆ˜์ •์‚ฌํ•ญ ์—†์Œ.

<!-- DispatcherServlet -->
<servlet>
	<servlet-name>dispatcher</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet
	</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:dispatcher-servlet.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>
 <!-- eGovFrame-servlet.xmlํŒŒ์ผ ์‚ฌ์šฉ  -->
<servlet-mapping>
	<servlet-name>dispatcher</servlet-name>
	<url-pattern>/*</url-pattern>
</servlet-mapping>

๋Œ“๊ธ€