Spring Project 생성하기
Eclipse에서 Project를 만들 때 New Dynamic Web Project를 선택해야 합니다.
New Dynamic Web Project를 만드는 과정은 JSP를 만드는 과정과 동일합니다.
과정은 복잡하지만, 이클립스와 Java Version마다 만드는 방법이 달라지므로 해당 방법을 고안했습니다.
이 방법이 귀찮았다면, SpringBoot로 만드는 것을 추천드립니다.
해당 방법의 Version은 Java 11과 Tomcat 9.0을 사용합니다.
이클립스는 2022 - 03 버전을 사용합니다.
Spring Legercy가 제대로 안 만들어지는 이상한 호환성을 가진 이들의 조합이라고도 할 수 있습니다.
만들기 전에 자신의 Version을 제게 맞추실 필요는 없습니다.
Project를 Finish 하기 전에, 해당 부분을 Check를 해주세요.
web.xml이 생성됩니다.
Project가 먼저 만들어졌습니다.
해당 Project는 JSP로 쓸 준비가 되어있는 상태입니다.
우리는 Spring을 사용하기 위해 좀 더 설정을 해줘야 합니다.
Maven 프로젝트로 변경하
Project를 먼저 Spring으로 변화시키기 위해서는 다음과 같이 진행합니다.
🔧 Project를 마우스 우클릭 => Configure => Convert to Maven Project
해당 작업은 일반 web Project를 Maven Project로 변형하는 과정입니다.
그리고 해당 화면이 나오게 되는데, 건들지 말고 Finish를 누르도록 합니다.
. jar과. war가 나오게 되는데, 이는 실행을 어떻게 하느냐의 차이입니다.
저희는 Tomcat을 통해 배포할 것이기 때문에 war를 선택하도록 하겠습니다.
Project명의 좌측 그림 폴더 위에 'M'이 생긴 것을 확인할 수 있습니다.
Spring Maven
만들어진 Maven에 이제 Spring Library를 삽입하도록 하겠습니다.
💚 설치 장소 💚
🍭 설치 목록
1. Spring Web
2. Spring MVC
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.34</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.34</version>
</dependency>
</dependencies>
해당 부분은 Version에 대한 문제가 있을 수 있으니 참고 부탁드립니다.
제 Project 경우에는 해당 Version을 골라서 사진과 같이 삽입을 진행하였습니다.
해당 부분이 나온 다면, 성공한 것을 알 수 있습니다.
따라서 진행했지만, 해당ㅠ사진처럼 제대로 되지 않거나 실행이 되지 않는다면 Version 문제를 확인해주세요.
web.xml 설정하기
🪄 src => main => webapp => WEB-INF => web.xml 파일을 열도록 하겠습니다.
❓ web.xml이란
외부 URL이 어떤 패턴으로 오느냐에 따라서 어떤 Servlet을 호출할까를 정의합니다.
여기서 Servlet을 호출할 때, 어떻게 어떤 규칙을 정의할 것인지 또한 설정할 수 있습니다.
따라서, web.xml은 프로젝트가 정상적으로 구동될 때 현관문의 역할을 수행한다고 생각해 주시면 편하겠습니다.
<?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_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>SpringStudy</display-name>
<!-- Spring MVC 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>/WEB-INF/spring/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- DispatcherServlet 매핑 -->
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/applicationContext.xml</param-value>
</context-param>
<!-- 웹 애플리케이션 리스너 설정, 스프링 컨텍스트 로더 리스너 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 필요한 경우, 다른 웹 리소스 설정 -->
</web-app>
여기서 display-name은 프로젝트 명하고 동일하게 설정해주시면 됩니다.
그리고 param-value는 경로를 읽고 해당 그림과 같이 폴더를 생성해 주셔야 합니다.
param-value의 설정은 아래의 코드를 따라 작성해 주시면 되겠습니다.
servlet.xml 설정하기
application.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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
</beans>
dispatcher-servlet.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"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd"> <!-- 어노테이션 활성화 -->
<context:annotation-config />
<!-- view의 경로, 확장자를 정해주는 부분 : DispatcherServlet이 이 경로를 따라서 컨트롤러가 날린 뷰의 이름에
해당하는 뷰가 있는지 찾아봄. --> <!-- ViewResolver 생성 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/" />
<property name="suffix" value=".jsp" />
</bean> <!-- model에 대한 정보 -->
<context:component-scan
base-package="kr.soft.study">
</context:component-scan>
</beans>
해당 구간은 먼저 복사 후, 붙어 넣기를 진행해 주세요.
아래에서 해당 경로에 대해 설명을 진행하겠습니다.
Project 설정하기
dispatcher-servlet.xml에서 19행을 바라보면, base-package="kr.soft.study"를 볼 수 있습니다.
이는 내 Project 내의 경로를 의미하게 됩니다.
제 Project 내의 java파일 밑에 kr-soft-study 패키지를 바라본다는 의미입니다.
즉, 저 안에서 Spring에 대한 기본 규칙만 지킨다면 사용할 수 있다는 의미를 갖고 있습니다.
package kr.soft.study;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class PiuController {
@GetMapping("/")
public void test() {
System.out.println("Project 반응 테스트하기");
}
}
그에 대한 첫 번째 의미,
@Controller 이를 먼저 시작하도록 하겠습니다.
web.xml에서 설정된 dispatcher-servlet.xml이 실행이 되고, 이를 통해서 servlet을 검색하게 됩니다.
이를 통해서 @Controller를 우선적으로 찾게 되는데 이 중 Mapping의 규칙에 제일 적합한 것을 찾습니다.
@GetMapping("/") 이란, localhost:8080 다음에 / 혹은 생략이 되었을 때 가장 먼저 찾는 Servlet입니다.
즉, 저희는 이를 실행했을 때 정상적으로 프로젝트를 만들었다는 것을 알 수 있습니다.
Java에 대한 설정은 여기서 끝입니다.
아래의 실행을 하여서, 프로젝트의 시작을 확인하도록 하겠습니다.
Spring, Controller 호출하기 ( Servlet 호출 )
Eclipse의 server 설정하기
Eclipse에서 원활한 진행을 위해서 Project가 다른 것이 실행 안 되도록 설정을 하겠습니다.
여기서, Tomcat - Modules의 Path의 설정을 '/'으로 정의합니다.
이후, Tomcat을 실행하도록 하겠습니다.
URL에서 Tomcat을 실행했을 때, Project 반응이 오는 것을 확인할 수 있습니다.
localhost:8080/ 을 인터넷 주소창에 입력하면 반응이 오는 것을 확인할 수 있습니다.
JSP 실행하기
jsp를 실행하기 위해서는 dispatcher-servet.xml의 설정을 다시 한번 살펴보도록 합니다.
prefix는 해당 경로를 생략 후, 화면을 출력한다는 의미를 갖고 있습니다.
즉, WEB-XML/view/ 안의 jsp를 불러온다는 의미를 갖고 있습니다.
이를 이해하고 만든다면, WEB-INF안에 view 폴더를 만들고 아무 명칭의 jsp를 만들면 된다는 것을 알 수 있습니다.
이후, 자신이 설정한. jsp의 명칭으로 return을 줄 경우, SPRING이 정상적으로 index를 호출하는 것을 확인할 수 있습니다.
마무리
이로써, Spring 프로젝트 만드는 것에 대한 설명을 마칩니다.
여기까지 따라 하신 분들, 모두 수고하셨습니다.
'Web > Spring' 카테고리의 다른 글
JPA 설정하기 (0) | 2023.08.21 |
---|---|
SQL Error: 23505, SQLState: 23505 - JPA 사용 도중 (0) | 2023.08.20 |
[Spring] DAO와 MyBatis 연결 (0) | 2023.01.21 |
[Spring] MyBatis의 ResultMap (0) | 2022.10.29 |
[Spring, MyBatis Error] out of range value column 에러처리 (0) | 2022.10.03 |