관련 : [Spring] IntelliJ를 사용한 Spring Project 생성 및 설정( Gradle )
Chapter#01 : [Spring] IntelliJ를 사용한 Spring Project 생성 및 설정(Maven)
Chapter#02 : [Spring] Spring MVC 패턴 적용하기
Chapter#03 : [Spring] Component-Scan을 사용하는 Annotation 기반 설정
Chapter#04 : [Spring] MyBatis를 사용한 DataBase 연동
#1. 기본 환경 Portable( 포터블 ) 설정
해당 포스팅은 아래의 버전을 사용하여 작업을 진행하였습니다.
JDK 1.8.0_202 : https://www.oracle.com/kr/java/technologies/javase/javase8-archive-downloads.html
Apache Tomcat 8.5.68 : https://tomcat.apache.org/download-80.cgi
Apahce Maven 3.8.1 : https://archive.apache.org/dist/maven/maven-3/3.8.1/binaries/apache-maven-3.8.1-bin.zip
Local 환경에서 Project를 생성할 경로를 먼저 지정하여 주고
해당 Project 폴더에 다운받은 Java JDK의 설치 및,
Apahce Maven, Apache Tomcat의 압축을 해제하여준다.
#2. IntelliJ 신규 프로젝트 생성
먼저 IntelliJ에서 New Project 창을 열어 신규 프로젝트를 생성한다.
New Proejct 창이 열리면 우측 메뉴에서 Maven Archetype을 선택해 준다.
그럼 이제 본격적인 설정에 들어가도록 한다.
1) Project 경로 설정 및 JDK 설정
New Proejct 사전 작업으로 진행한 Proejct의 디렉토리를 경로로 잡아준다.
Name | Project 이름 사용자 지정 |
Location | IntelliJ 프로젝트 경로 사용자 지정 |
JDK | 설치한 PC의 JDK 설치 경로( 해당 포스팅 : JDK 1.8.0_202 ) |
2) Maven Archetype 지정
다음으로 Maven Archetype( 원형 )의 기본값을 지정해 준다.
Archetype을 보면 Add 버튼이 존재한다.
클릭하면 Add Archetype이라는 팝업창이 나타나는데
GroupId | org.apache.maven.archetypes |
ArtifactId | maven-archetype-quickstart |
Version | 1.1 |
Catalog | Apache Maven 설치경로 지정 ( 해당 포스팅 : apache-maven-3.8.1 ) |
위와 같이 입력하면 그림과 같이 Catalog, Archetype, Verison이 자동으로 값이 지정되는 것을 확인 할 수 있다.
3) Advanced Settings
마지막으로 생성할 프로젝트의 GroupId( package 경로로 사용 )와
메이븐 ArtifactId와 Version을 작성해준다.
GroupId | ( 예시 ) org.spring.example |
ArtifactId | ( 예시 ) spring_example |
Version | ( 예시 ) 0.0.1-SNAPSHOT |
Create 버튼을 클릭하면 IntelliJ에서 Maven 신규 프로젝트가 생성이 진행된다.
BULID SUCCESS 문구가 확인이되면 정상적으로 설치가 된것을 알 수 있다.
#2. Project에 Spring Framework 추가하기
새로운 프로젝트가 정상적으로 생성이 완료되면 먼저 해당 프로젝트에 Spring 구조를 잡아준다.
IntelliJ의 Project에서 생성한 Project Name을 선택하고 마우스 우클릭하여 오픈된 메뉴에서
Add Framework Support를 선택한다.
Add Framework Support 창이 오픈되면 우측 메뉴에서 Spring → Spring MVC를 선택한다.
OK 버튼을 클릭하면 프로젝트에 Spring MVC-버전.RELEASE의 설치가 진행되고
아래와 같이 Spring 설정에 필요한 web 디렉토리가 생성되며 기본적인 값이 추가되는 것을 알 수 있다.
WEB-INF 디렉토리에 아래와 같은 파일이 추가되었다.
applicationContext.xml | ApplicationContext 생성 시 필요한 설정정보를 담은 파일 |
dispatcher-server.xml | HTTP 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 적합한 컨트롤러에 위임해주는 프론트 컨트롤러(Front Controller) |
web.xml | 모든 Web application은 반드시 하나의 web.xml파일을 가져야한다. web.xml에서 서블릿 맵핑 되는 방법 ,인증이 필요한 URL 등의 정보를 확인한다. WebApplication의 Deployment Descriptor(배포 설명자) 로써 XML형식의 파일이다. web.xml파일의 설정들은 Web Application 시작시 메모리에 로딩된다. |
추가적으로 IntelliJ 상단 File → Project Stucture을 선택해보면
Project Stucture 팝업창의 Project Settings → Modules를 선택하면
생성한 프로젝트에 Srpign, Web 관련 설정이 추가된 것을 확인 할 수있다.
Project Settings → Artifacts을 확인해 보면 「프로젝트명 : war exploded」 파일이 생성된 것을 확인할 수 있다.
war exploded : 아카이브를 압축해제한 디렉토리 형태 구조
Available Elements를 를 살펴보면 위에서 우리가 추가한
Spring-버전.RELEASE.jar, Spring MVC-버전.RELEASE.jar 라이브러리가 추가되어 있는것을 알 수 있다.
Spring-버전.RELEASE.jar, Spring MVC-버전.RELEASE.jar 선택하고
마우스 더블클릭하여 WEB-INF → lib 디렉토리로 이동시켜주고
OK 버튼을 눌러 저장하고 팝업창을 닫는다.
#3. Tomcat Web Appliaction 실행하기
IntelliJ 상단 메뉴에서 Run → Edit Configuration을 선택한다.
Ren / Debug Configurations 팝업창이 뜨면 「+」 버튼을 클릭하고
Tomcat Sever → Local을 선택해준다.
Tomcat Server 설정을 시작한다.
1) Tomcat Server 설정
Application Server의 Configure 버튼을 클릭하면 Tomcat Server 팝업창이 나타난다.
Tomcat Home, Tomcat base directory의 값은 위에서 압축을 해제한 Apache Tomcat의 경로를 지정해 준다.
그럼 Application Server의 값이 설치한 Apache Tomcat으로 지정된다.
다음으로 Apache Tomcat 실행 Log가 문자가 깨지는 것을 방지하기위해 VM options 값을 아래와 같이 작성하여 준다.
VM options | -Duser.language=en -Duser.region=us |
VM options 값을 위와같이 변경하여준다.
JRE의 설치경로는 프로젝트를 처음 생성하였을때 설치한 JDK 디렉토리에 존재하는 JRE를 사용한다.
JRE | JDK_설치경로\JRE\ |
기본적으로 IntelliJ에서 알아서 JRE 경로를 잡아주지만
Tomcat 버전과 JRE 버전이 호환되지 않는 이슈도 발생할 수 있기에 진행하고 넘어가는 것을 권한다.
다음으로 HTTP port를 변경하여 준다.
Apache Tomcat 기본 Prot 번호는 8080인데, Oracle Application Express의 기본값이 8080이기 때문에
충돌을 피하기 위해 8181로 변경하여 준다.
HTTP | 8181 |
HTTP port의 값을 변경하면 URL의 값도 http://localhost:8181/로 변경되는것을 확인 할 수 있다.
2) Tomcat Deployment 설정
이제 Deployment 배포와 관련된 작업을 진행한다.
「+」 버튼을 클릭하여 Artifact를 추가한다.
Artifact를 누르면 위에서 생성을 확인한 「프로젝트명 : war exploded」가 배포형식으로 추가된다.
3) Tomcat 실행
이제 설정한 Tomcat을 실행시키도록 한다.
실행결과는 Spring Framework web → WEB-INF → index.jsp 파일의 내용이 기본적으로 노출된다.
Tomcat이 정상적으로 실행이 되면 브라우저가 오픈되고
Tomcat 설정중 URL + Application Context가 URL값으로 사용되어서
index.jsp의 내용이 출력되는 것을 확인 할 수 있다.
다시 IntelliJ의 프로젝트를 확인해 보면 out 디렉토리가 추가된 것을 확인 할 수 있다.
Artifact를 「프로젝트명 : war exploded」로 설정하였기 때문에 압축을 해제한 위와 같은 형태가 되었다.
#4. Maven 설정
1) 사용자 Local의 Apache Maven 설치경로 Path 지정
가장 먼저 압축을 해제한 Apache Mavne 디렉토리에 repository 폴더를 새로 생성해 주어야 한다.
repository 폴더는 Artifact들의 저장소로
생성한 프로젝트는 pom.xml에서 선언한 Dependency들을 저장소로 부터 불러와 사용한다.
IntelliJ 상단의 File → Setting을 선택한다.
Setings 팝업창이 뜨면 우측 메뉴에서 Build, Execution, Deployment → Build Tools → Mavne을 선택한다.
압축을 해제한 Apache Mavne 디렉토리의 경로를 지정해 주어야 한다.
Mavne home path | apache-maven-버전 설치 디렉토리 경로 지정 |
User settings file | apache-maven-버전 설치 경로의 conf 디렉토리의 settings.xml을 지정 |
Local repository | apache-maven-버전 설치 경로에 repository라는 디렉토리를 추가하고 해당 경로를 지정 |
그럼 Maven Local repository 경로에 Maven Plugin 설정 jar 파일들이 추가된다.
설치가 완료될 때까지 잠시 기다려 준다.
2) Mavne 라이프 사이클 설정
메이븐은 빌드 라이프 사이클이라고 하는절차를 가진다.
이는 프로젝트 빌드에 관련된 각 단계( Phases )의 순서를 의미한다.
메이븐은 여러 다른 라이프 사이클을 지원하지만 기본 라이프 사이클을 많이 사용한다.
메이븐에 내장된 빌드 라이플 사이클은 여러 단계로 구성되어 있다.
아래 표는 라이프 사이클의 단계를 설명한다.
P137 내용을 참고하여 정리다시 할것
mvn compile | 컴파일을 수행하고, 결과는 target / classes에 생성된다. |
mvn test | 테스트 코드를 컴파일한 뒤 테스트 코드를 실행한다. 테스트 클래스들은 target / text - classes 디렉터리에 새성된다. 테스트 결과 리포트는 target / surefire-reposrts에 생성된다. |
mvn package | 컴파일된 결과물을 패키지 파일로 생성된다. 컴파일, 테스트, 빌드를 수행하여 패키지 파일을 생성한다. |
mvn install | 패키징한 파일을 로컬 저장소에 배포한다. |
mvn deploy | 패키징한 파일을 원격 저장소( maven central 저장소 )에 배포한다. |
mvn clean | 메이븐 빌드를 통하여 생성된 모든 산출물을 삭제한다. |
Maven Build 관련된 설정을 확인해 보자.
<plubingManagement> 설정값이 pom.xml에 따로 작성된 내용이 있는지 확인해 보자.
없다면 이제 직접 작성해준다.
이때 각 Maven Plugin 설정의 <version> 정보는 세팅된 값을 사용하는것을 권한다.
각 Spring 설정과 관련한 버전을 확인했다면
아래와 같이 pom.xml 파일을 수정하여 Mavne Build 설정을 직접 작성한다.
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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.spring.example</groupId>
<artifactId>spring_example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring_example</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
※ maven-compiler-plugin
<source> JDK 버전
<target> JDK 버전
<encoding> UTF-8
작성이 완료되었다면 우측 메뉴의 Mavne Plugin에서 Lifecycle을 선택하고 clean 해준다.
BUILD SUCCESS가 되면 정상적으로 Maven이 clean 되었다.
이제 다시 Manve Plugin에서 Lifecycle을 Insert해준다.
BUILD SUCCESS가 되면 정상적으로 Maven이 Insert 되었다.
3) 코디네이트 설정
코디네이트( coordinates )는 메이븐 프로젝트를 식별하기 위한 유일한 값들을 정의한다.
코디네이트는 공간 내에서 특정 위치를 위한 주소이다.
가가 프로젝트를 인식할 수 있는 주소와 같은 역할을 한다.
한 프로젝트가 다른 프로젝트에 연관되어 있거나 디펜던시나 플러그인으로 사용되는 경우
또는 부모 프로젝트에 연관되는 경우 해당 프로젝트를 정확하게 지칭할 수 있게 해준다.
코디네이트는 아래의 정보들로 구성된다.
groupId
프로젝트 제작을 책임지는 개체 또는 조직을 나타낸다.
이름 명명 규칙에 따르면 groupId는 조직의 도메인을 뒤집어서 표기한다.
예를 들어 org.maven.examplesms groupId가 될 수 있다.
artifactId
실제 프로젝트 즉, 아티팩트( artifact )의 이름을 의미한다.
각 프로젝트를 식별하기 위해 사용된다.
version
프로젝트의 특정한 배포 버전을 의미한다.
지원하는 형식은 mmm.nnn.bbb-qqqqqqq-dd와 같다.
여기에서 mmm은 메이저 버전 숫자, nnn은 마이너 버전 숫자, bbb는 버그 수정 레벨을 나타낸다.
가끔 qqqqq( 수식어 ) 또는 dd( 빌드 숫자 )를 버전 번호에 추가로 붙일 수 있다.
packaging
프로젝트는 기본적으로 jar 형식으로 패키징되며 프로젝트가 만드는 아티팩트로 결정된다.
만약 war라고 준다면 웹 어플리케이션을 의미한다.
#5. Spring 기본 설정
1) Mavne Repository에 Spring 의존성 주입
pom.xml에 Spring 설정에 필요한 의존성을 주입한다.
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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example.maven</groupId>
<artifactId>spring_example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>spring_example</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 버전 정보를 일치시키기위한 태그 지정 -->
<org.springframework-version>5.2.3.RELEASE</org.springframework-version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
</dependencies>
~~ 이 하 생 략 ~~
</project>
※ Srping 버전 설정
<org.springframework-version>은 되도록 프로젝트 생성때 사용한 버전을 사용한다.
Reload All Maven Project 버튼을 클릭하면 설정한 의존성 관련 jar파일들이 다운받아진다.
다운받은 jar 파일들은 Local 환경의 Maven Repository에 저장된다.
2) Project Library에 Spring 설정 JAR파일 추가하기
IntelliJ 상단 메뉴에서 File → Project Structure을 선택하낟.
Project Structure팝업창이 열리고 Artifats를 메뉴를 확인하면 아래 이미지와 같이
Maven Dependency에 추가한 Spirng 설정 JAR 파일들 추가된 것을 확인 할 수 있다.
해당 JAR 파일들을 WEB-INF → lib 디렉토리로 이동 시켜줄 것이다.
먼저 위에서 lib 디렉토리에 추가한 Spring-버전.RELEASE.jar, SPRING MVC-버전.RELEASE.jar
위와같이 Spring-버전.RELEASE.jar, SPRING MVC-버전.RELEASE.jar 파일들을 빼면 다음작업을 진행한다.
다음으로는 Maven Dependency에서 추가한 Spring_설정.jar 파일들을 전부 lib 디렉토리에 위치신다.
다음으로 오른쪽 Libraries 메뉴를 선택하고
Spring-버전.RELEASE.jar, SPRING MVC-버전.RELEASE.jar 파일을 완전히 삭제해준다.
Maven Dependency에 추가한 Spirng Framework 구축에 필요한 모든 jar파일을 추가하였기 때문에
처음 필요로 했던 Spring-버전.RELEASE.jar, SPRING MVC-버전.RELEASE.jar 파일은 더이상 필요로 하지 않는다.
3) Spring 설정파일
web.xml의 역할
· WAS(Web Application Server, Tomcat)가 실행되고 웹 어플리케이션에 필요한 설정을 구성하는 XML 파일
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<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>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
위 설정은 브라우저에서 들어오는 모든 요청이 *.do이면 dispatcher라는 이름의
DispatcherServlet 클래스의 객체가 생성되고 실행된다는 설정이다.
dispatcher-servlet.xml의 역할
서블릿 컨텍스트(Servlet Context) 파일
· 필요한 상황에 맞춰 사용되는 빈(bean)을 설정하는 XML 파일, 일반적으로 Web 관련된 빈을 설정한다.
· applicationContext.xml( 혹은 root-context.xml )에 동일한 빈이 존재하는 경우에는
dispatcher-servlet.xml( 혹은 servlet-context.xml ) 설정된 빈이 우선적으로 적용된다.
프링 MVC를 구성하는 여러 요소들 중에서 가장 주요한 클래스이며
모든 클라이언트의 요청을 가장 먼저 받아들이는 DispatcherServelt이다.
따라서 스프링 MVC 적용에 있어서도 가장 먼저
WEB-INF/web.xml 파일에 스프링 프레임워크에서 제공하는 DispatcherServlet을 등록해야 한다.
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:mvc="http://www.springframework.org/schema/mvc"
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/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!-- Annotation 활성화 -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- component-scan 설정 -->
<context:component-scan base-package="org.spring.example.controller"></context:component-scan>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
<property name="order" value="1"/>
</bean>
</beans>
org.spring.example.controller 패키지 경로는 아직 설정하지 않음
컴포넌트 스캔( component-scan ) 설정
스프링 설정 파일에 어플리케이션에서 사용할 객체들을 <bean> 등록하지 않고 자동으로 생성하라면
<context:component-scan/> 이라는 엘리먼트를 정의해야 한다.
이 설정을 추가하면 스프링 컨테이너는 클래스 패스에 있는 클래스들을 스캔하여
@Component가 설정된 클래스들을 자동으로 객체 생성한다.
클라이언트의 요청으로 DispatcherServelt 객체가 생성되면 DispatcherServlet 객체에 구현된 init( ) 메소드가 실행되어
XmlWebApplicationContext를 구현한 클래스 중 하나로서, 유일하게 웹을 지원하는 스프링 컨테이너다.
스프링 MVC의 구성 요소 중에서 DispathcerServlet이 유일한 서블릿 클래스며 나머지는 일반 Java 클래스이다.
서블릿 컨테이너는 web.xml 파일에 등록된 DispatcherServelt만 생성할 수 있다.
하지만 DispatcherServlet 객체 혼자서는 클라이언트의 요청을 처리할 수 없고,
반드시 HandlerMapping, Controller, ViewResolver 객체들과 상호작용해야 한다.
이 객체들을 메모리에 생성하기 위해서 DispatcherServlet은 스프링 컨테이너를 구동하는 것이다.
결국 DispatcherServlet은 클라이언트의 요청 처리와 관련된 HandlerMapping, Controller, ViewResolver 객체들을 생성하기 위해
스프링 컨테이너를 구동한다. 이 과정을 그림으로 표현하면 다음과 같다.
서블릿 컨테이너가 DispatcherServlet 객체를 생성하면 DispatcherServlet 객체의 init( ) 메서드가 자동으로 실행된다.
init( ) 메서드에서는 스프링 설정 파일( applicationContext.xml )을 로딩하여 XmlWebApplicationContext를 생성한다.
즉, 스프링 컨텐이너가 구동되는 것이다.
그래야 HandlerMapping, Controller, ViewResolver 객체들도 메모리에 올라가는 것이다.
결국 스프링 설정 파일( applicationContext.xml )에 DispatcherServlet이 사용할
HandlerMapping, Controller, View Resolver 클래스를 <bean> 등록하면 스프링 컨테이너가 해당 객체들을 생성해 준다.
4) 샘플 View 생성
Project의 web → WEB-INF경로에 *.jsp, *.html등의 파일들을 보관한 디렉토리를 하나 생성한다.
WEB-INF( 마우스 우클릭) → New → Directory를 선택하면 New Directory 팝업창이 나타나는데
디렉토리명은 「 views 」로 지정한다.
생성된 views 디렉토리에 JSP 파일을 하나 추가해준다.
WEB-INF → views( 마우스 우클릭 ) → New → JSP / JSPX를 선택하면 Create JSP / JSPX 팝업창이 나타난다.
JSP file을 선택하고 ( 예시 ) example.jsp 라는 JSP 파일을 생성한다.
위와같이 example.jsp 파일이 정상적으로 생성되었다면 아래와 같이 입력한다.
example.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Spring Setting</title>
</head>
<body>
<h1>Hello Spring</h1>
</body>
</html>
5) 샘플 Controller 생성
src → main → java → GroupId( 예시 : org.spring.example ) 경로에 Package를 하나더 추가한다.
GroupId( 마우스 우클릭 ) → Package를 선택하면 New Package 팝업창이 나타난다.
GroupId( 예시 : org.spring.example )에 추가로 「 .controller 」라는 Package를 추가한다.
controller 패키지가 생성되었다면 이제 Java Class 파일을 생성해 주어야 한다.
controller( 마우스 우클릭 ) → Java Class를 선택하면 New Java Class 팝업창이 나타난다.
Class를 선택하고 ( 예시 ) ExampleController.java 파일을 생성한다.
위와같이 ExampleController.java 파일이 정상적으로 생성되었다면 아래와 같이 입력한다.
ExampleController.java
package org.spring.example.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class ExampleController {
@RequestMapping(value = "/example.do", method = RequestMethod.GET)
public String ExampleMain() {
return "example";
}
}
#6. Spring Project 빌드하기
모든 작업이 완료되었다면 이제 Tomcat을 이용하여 Spring Project의 실행 결과를 확인 해 보자.
Apache Tomcat이 실행되면 Internet Broswer가 실행된다.
이전 Add Framework Support기능으로 추가한 Spring MVC의 index.jsp 내용이 오픈되는데
이건 기본 Default 경로가 WEB-INF의 index.jsp 로 잡혀 있기 때문이다.
Spring Component Scan으로 지정한 example.jsp 파일을 찾을려면
URL 값을 다음과 같이 수정한다.
URL : localhost:8181/ProjectName_war_exploded/example.do
Browser를 새로고침 하면 위와같이 Hello Spring이 오픈되는것을 확인 할 수 있다.
추가적으로 web → WEB-INF → index.jsp 파일을 아래와 같이 수정하자.
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java"%>
<jsp:forward page="/example.do"/>
다시 Apache Tomcat을 실행시켜보자
Web Browser가 오픈되고 기본 메인페이지에서 Hello Spring이 출력되는 것을 확인할 수 있다.
URL : localhost:8181/ProjectName_war_exploded/
이것으로 IntelliJ를 이용한 기본적인 Spring 프로젝트의 포터블 세팅이 완료되었다.
'Spring Web > Spring Framework' 카테고리의 다른 글
[Spring] Component-Scan을 사용하는 Annotation 기반 설정 (0) | 2022.12.09 |
---|---|
[Spring] Spring MVC 패턴 적용 (0) | 2022.12.08 |
[Spring] Android Studio GIT - Clone 기존 GIT 프로젝트와 연결 (0) | 2022.11.08 |
[Spring] MyBatis를 이용한 Oracle 데이터베이스 CRUD 기능 사용 (2) | 2022.07.06 |
[Spring] Component-Scan을 사용하는 Annotation 기반 설정 (0) | 2022.06.17 |