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

์Šคํ”„๋ง Spring/๐Ÿงถ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ Spring

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ - ์ดˆ๊ธฐ ์„ธํŒ… , ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ค์ •

by Meteora_ 2021. 4. 19.
728x90

์••์ถ•ํ’€๊ธฐ

 

sts-4.10.0.RELEASE ๋””๋“œ๋ผ์ด๋ธŒ์— ๋„ฃ๊ธฐ

 

Spring tool exe์‹คํ–‰ํ›„ help ๋งˆ์ผ“์—์„œ install, install New software

 


์„ธํŒ…์ˆœ์„œ๋ณ„๋กœ ์ •๋ฆฌ

1. DynamicํŒŒ์ผ์ƒ์„ฑ2. mvnrepository.com/artifact/org.springframework/spring-webmvc/5.3.3์œ„์—์„œ dependency๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค - >pom.xml๋ฅผ ์ถ”๊ฐ€-> ํ”„๋กœ์ ํŠธ ์œ„ ์šฐํด๋ฆญ - >configure -> convert maven3.  dispatcherServlet.xml์„ WEB-INF > spring ๊ฒฝ๋กœ์— ์ƒ์„ฑ(Spring Bean Configuration File๋กœ ์ƒ์„ฑ)(WEB-INF Views์ •๋ฆฌ)4.  web.xml : ํ”„๋กœ์ ํŠธ ์šฐํด๋ฆญ  javaEEtools ์„ ํƒ Generate

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>sample1</groupId>
  <artifactId>sample1</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <release>15</release>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.3</version>
      </plugin>
    </plugins>
  </build>
  
<dependencies>
			<dependency>
			    <groupId>org.springframework</groupId>
			    <artifactId>spring-webmvc</artifactId>
			    <version>5.3.3</version>
			</dependency>
</dependencies>  
  
  
  
  
</project>

 


dispatcherServlet.xml

(Spring Bean Configuration File๋กœ ์ƒ์„ฑ)

 

์„ธํŒ…ํ• ๋•Œ content๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์•„ beansํƒœ๊ทธ์— ์‹คํ–‰๋˜์ง€์•Š์•˜์—ˆ์Œ

 

-DispatcherServlet์ด๋ž€?

์Šคํ”„๋ง MVC์—์„œ DispatcherServlet์€ ๋‹ค๋ฅธ ์›น ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ์ฒ˜๋Ÿผ ํด๋ผ์ด์–ธํŠธ์˜ request๋ฅผ ์ปจํŠธ๋กค๋Ÿฌ์— ์ „๋‹ฌํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์Šคํ”„๋ง Ioc ์ปจํ…Œ์ด๋„ˆ์™€ ํ†ตํ•ฉํ•˜์—ฌ ์Šคํ”„๋ง์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.

 

-์Šคํ”„๋ง DispatcherServlet ์„ค์ • ๋ฐฉ๋ฒ•

DispatcherServlet์€ httpServlet์„ ์ƒ์† ๋ฐ›๋Š” ์‹ค์ œ ์„œ๋ธ”๋ฆฟ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  code-based ๋˜๋Š” web.xml์—์„œ ์„ค์ •ํ•œ๋‹ค. ์•„๋ž˜๋Š” WEB-INF ๋””๋ ‰ํ† ๋ฆฌ ์— ์žˆ๋Š” web.xml ํŒŒ์ผ์ด๋ฉฐ DispatcherServlet์ด ์ฒ˜๋ฆฌํ•  url-mapping์„ ๋ฐ˜๋“œ์‹œ ๊ฐ™์ด ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

XML์— ์ •์˜ํ•œ ์„œ๋ธ”๋ฆฟ ์„ค๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
1. ์ด๋ฆ„์€ dispatcher ์ด๋‹ค.
2. org.springframework.web.servlet.DispatcherServlet์˜ ์ธ์Šคํ„ด์Šค์ด๋‹ค.
3. contextConfigLocation์— ์œ„์น˜ํ•œ ํŒŒ์ผ๋“ค๊ณผ ํ•จ๊ป˜ ์ดˆ๊ธฐํ™” ๋  ๊ฒƒ์ด๋‹ค.

load-on-startup์€ ์ •์ˆ˜๊ฐ’์ด ๊ธฐ๋ก๋˜๋Š”๋ฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์„œ๋ธ”๋ ›์ด ๋กœ๋“œ๋  ๋•Œ ์ˆœ์„œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
์ •์ˆ˜๊ฐ’์ด ์ž‘์€ ์„œ๋ธ”๋ฆฟ๋ถ€ํ„ฐ ๋จผ์ € ๋กœ๋“œ๋œ๋‹ค.

 

dispatcherServlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
	
	<!-- spring MVC annotation(์ฃผ์„๋ฌธ,์ง€์‹œ๋ฌธ)์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ • -->
	<context:annotation-config/>
	
	
	<!-- viewResolver ์„ค์ • ์‚ฌ์šฉ์ž์˜ view์˜์œ„์น˜์™€ ํ™•์žฅ์ž๋ช…์„ค์ • -->
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	
		<property name="prefix" value="/WEB-INF/views/"></property> <!-- view์˜ ๊ฒฝ๋กœ -->
		<property name="suffix" value=".jsp"></property><!-- ํ™•์žฅ์ž ๋ช… -->
		
	</bean>
	<!--
	
	์œ„์™€๋™์ผ
	InternalResourceViewResolver viewResolver = new  InternalResourceViewResolver();
	viewResolver.prefix = "/WEB-INF/views/";
	viewResolver.suffix = ".jsp";
	
	
	  -->
	  
	  
	  <!-- java ๊ณตํ†ต ํŒจํ‚ค์ง€ -->
	<context:component-scan base-package="bit.com.a"/>
	
	

</beans>

 


web.xml

web.xml์—๋Š” ํ•„ํ„ฐ ๋“ฑ๋ก๊ณผ URL ๋งตํ•‘์„ค์ • ๊ทธ๋ฆฌ๊ณ  ์ดˆ๊ธฐํ™” ํŒŒ๋ผ๋ฏธํ„ฐ(์„ค์ •๊ฐ’)๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

<param-name>์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๋ช…์„ <param-value>๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’๋“ค์€ ๋ชจ๋‘ ๋ฌธ์ž์—ด(String) ํƒ€์ž…์ž…๋‹ˆ๋‹ค.

  • <init-param> - ์ดˆ๊ธฐํ™” ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ๋ก์‹œ ์‚ฌ์šฉ(์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
  • <param-name> - ํŒŒ๋ผ๋ฏธํ„ฐ๋ช… ์ง€์ •
  • <param-value> - ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’ ์ง€์ •(String ํƒ€์ž…์œผ๋กœ ๋“ฑ๋ก๋จ)



์ถœ์ฒ˜: https://dololak.tistory.com/606 [์ฝ”๋ผ๋ฆฌ๋ฅผ ๋ƒ‰์žฅ๊ณ ์— ๋„ฃ๋Š” ๋ฐฉ๋ฒ•]

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>sample1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  
  
  <servlet>
		  	<servlet-name>dispatcherServlet</servlet-name>
		  	<servlet-class>
		  		org.springframework.web.servlet.DispatcherServlet
		  	</servlet-class>
  
  			<init-param>
  				<param-name>contextConfigLocation</param-name>
  				<param-value>
  				/WEB-INF/spring/dispatcherServlet.xml
  				</param-value>
  			</init-param>
  
  			<load-on-startup>1</load-on-startup>
  			
  
  
  </servlet>
  
	<servlet-mapping>
			
			<servlet-name>dispatcherServlet</servlet-name>
			<url-pattern>/</url-pattern>
	
	</servlet-mapping>  
  
  
</web-app>

 

๋Œ“๊ธ€