지난 포스팅에 이어 이번에는 intellij에서 구축하는 방법에 대해 작성한다.
[IDE]
intellij ultimate
[목표]
1. Spring Boot 2.3.0 + jsp + 내장 톰캣 구축
2. Spring Boot 2.3.0 + jsp + 설치한 외부 톰캣 구축
* 스프링 부트는 Thymeleaf를 템플릿 엔진으로 사용하기 때문에 jsp를 사용하기 위해서는 따로 설정해줘야 한다.
* intellij community에서는 jsp파일 사용안된다.
# 0. 프로젝트 환경 이해
생성에 앞서 이클립스와 인텔리제이의 프로젝트 환경에 대한 이해가 필요하다.
이클립스 | 인텔리제이 | |
작업 공간 | workspace | project |
프로젝트 | project | module |
설정 파일 | .project | .idea 디렉토리 이하 파일 |
# 1. 빈 프로젝트 생성
빈 작업공간을 생성한다. (Next ~ Finish)
# 2. Project SDK 설정
각 사용자에 맞는 java 버전 설정한다.
# 3. Project Modules 설정
Maven -> Next
module 이름(= 프로젝트) 및 Artifact 설정한다.
# 4. pom.xml 세팅
전자정부 표준 프레임워크 적용했다는 기준(+규칙)에 대해 아직 명확히 이해하지 못했기 때문에 가장 쉬운 방법을 선택했다.
* ex. 아키텍쳐 적용 규칙 준수 + eGov 라이브러리 사용 등등
pom.xml 베이스로 이전 포스팅에서 구축한 eclipse_eGovFrame의 pom.xml을 가져다 사용했다.
참고: alice-secreta.tistory.com/24
위에서 가져온 pom.xml 에 추가
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>eGovDemo</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>eGovDemo</name>
<url>http://www.egovframe.go.kr</url>
> jasper 추가
프로젝트 빌드 결과 포함될 톰캣 서버 라이브러리
> JSTL 추가
JSTL 확장 태그를 사용하기 위해 필요한 라이브러리
* eclipse_eGov pom.xml에 추가되어 있었음
> spring-boot-starter-tomcat 추가
스프링 부트 내장 웹 서블릿 컨테이너인 톰캣이 자동 설정됨
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
# 5. 디렉토리 생성 및 코드 작성
> 5.1 WEB-INF\jsp\index.jsp 디렉토리 구성
> 5.2 web\indexController.java 작성
> 5.3 Application.java 작성
> 5.4 resources\application.properties 작성
먼저 디렉토리 구조를 다음과 같이 기본적인 것만 생성한다.
# 5.1 webapp\WEB-INF\jsp\index.jsp 디렉토리 구성
jsp파일은 스프링 부트 templates 폴더안에서 작동되지 않는다. (jsp 사용을 권장하지도 않음)
webapp\WEB-INF\jsp\* 안에 작성하는 것을 기본으로 한다.
* WEB-INF: 웹 어플리케이션 용으로 따로 만들어진 디렉토리로 알고 있다.
다음과 같이 hello world를 출력하는 index.jsp를 작성한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>demo</title>
</head>
<body>
<h1>hello world</h1>
</body>
</html>
# 5.2 web\indexController.java 작성
단순히 index.jsp를 반환하는 코드로 작성했다.
@Controller
public class indexController {
@RequestMapping("/")
public String index() { return "index"; }
}
# 5.3 Application.java 작성
일단은 기본 pom.xml이 war로 배포형태로 되어있었다. (웹 프로젝트니까 war로 되어있다고 알고 있다.)
*스프링 부트는 jar가 기본 배포형태다.
SpringBootServletInitializer 상속: war에서 스프링 부트 어플리케이션이 동작 가능하도록 웹 어플리케이션 컨텍스트를 구성하기 위해서 추가했다.
또한, InternalResourceViewResolver Bean 등록: DispatcherServlet에게 뷰 정보(jsp를 사용하겠다.)를 전달하기 위해서 작성했다.
Prefix / Suffix : 컨트롤러에서 리턴하는 뷰 이름에 접두,접미어를 붙여서 JSP페이지의 경로를 찾아주는 역할 수행한다.
# 5.4 resources\application.properties 작성
ViewResolver는 application.properties에서 다음과 같이 작성해도 된다.
# 6. Application - run 실행 시, 404 등 실행되지 않는 경우
run/debug configuration > environment > Workingdirectory 를 $MODULE_WORKING_DIR$ 로설정하면 해결된다.
'Computer Science > Java' 카테고리의 다른 글
# Google_OAuth2.0_SpringBoot 구현 1 - Authorization code (0) | 2020.11.07 |
---|---|
# 전자정부 프레임워크 세부 적용 규칙 - Intellij + SpringBoot 적용 (0) | 2020.11.01 |
[eclipse]전자정부 표준프레임워크 개발환경 구축하기 (0) | 2020.10.14 |
# 스프링 이벤트 캐치 - PostgreSQL Logical Replication Streaming (0) | 2020.09.15 |
# Live templates(주석 자동완성) + File & Code template (0) | 2020.07.14 |