프로젝트/도서 관리 시스템

[Spring Boot] 1-2. 프로젝트 생성 (JSP 사용하기)

s워니얌 2023. 6. 12. 23:23

 

 

 

 

 

https://wonisdaily.tistory.com/91

 

[IntelliJ] 인텔리제이 Ultimate 설치 방법

그동안 java, jsp/servlet, Spring MVC 를 공부하면서 사용한 tool은 eclipse였다. IntelliJ에 대해서 들어보긴 했는데 그냥 쓰던게 편하겠지 싶어 이클립스를 사용했었는데, 이번에 인프런에서 김영한 강사님

wonisdaily.tistory.com

 

 

 

📑 프로젝트 생성

 

 

IDE는 IntelliJ를 사용하려고 한다. 설치 방법은 위의 포스팅 참고.  intellij를 설치했다면 spring initializr에서 프로젝트를 생성한다.  https://start.spring.io/

 

✔ project : Gradle - Groovy
✔ spring boot : 2.7.12 ( 3버전은 java 11 사용시 버전 호환에 문제가 있음)
✔ packaging : war ( jsp 사용하려면 war 선택 !! ) 
java : 11 

 

 

 

 

📑 프로젝트 실행, 라이브러리 추가

 

IntelliJ 실행시킨 후 file -> open -> 오픈할 파일 경로 선택 후 build.gradle 클릭 후 ok.

 

 

 

JSP 사용을 위한 라이브러리를 추가해준다. 

implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'

 

plugins {
	id 'java'
	id 'war'
	id 'org.springframework.boot' version '2.7.12'
	id 'io.spring.dependency-management' version '1.0.15.RELEASE'

}

bootWar {
	enabled = true
}

group = 'com.wish'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	//implementation 'org.springframework.boot:spring-boot-starter-security'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.0'
	implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
	//외장 tomcat use
	implementation 'org.springframework.boot:spring-boot-starter-tomcat'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	implementation 'javax.servlet:jstl'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	runtimeOnly 'com.oracle.database.jdbc:ojdbc8'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	//testImplementation 'org.springframework.security:spring-security-test'
	testImplementation("org.mybatis.spring.boot:mybatis-spring-boot-starter-test:2.3.0")
	testCompileOnly 'org.projectlombok:lombok:1.18.12' // 테스트 의존성 추가
	testAnnotationProcessor 'org.projectlombok:lombok:1.18.12' // 테스트 의존성 추가
}

tasks.named('test') {
	useJUnitPlatform()
}

 

 

📑 DB 정보 입력

 

Oracle Driver를 dependencies에 추가했기 때문에 DB 정보를 입력해야된다. src -> main -> resources -> application.properties로 이동하여 코드를 작성해준다. 

 

 

port는 8081로 꼭 지정해둬야하는 건 아니지만 충돌 예방을 위해 8081로 변경했다. 

 

 

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/xe
spring.datasource.username=아이디
spring.datasource.password=비번

server.port=8081

 

 

oracle 11g xe와 spl developer 설치, 계정 생성 방법이 궁금하다면 아래 링크를 참고하자.

 

https://wonisdaily.tistory.com/208

 

[ORACLE] SQL Developer 설치, 계정 생성

오라클을 편하게 사용하려면 sqldeveloper를 다운받는 게 좋다. 아래 링크는 오라클 11g XE 다운 받는 방법을 정리해둔 포스팅이니 참고 https://wonisdaily.tistory.com/207 [Oracle] 오라클 11g Express Edition(XE) 다

wonisdaily.tistory.com

 

 

 

 

 

📑 JSP 사용을 위한 프로젝트 구조 변경

 

Spring Boot의 기본 템플릿 엔진은 thymeleaf이지만, 국내에서는 주로 jsp를 이용하여 개발한다. 현 si에 몸 담구고 있는데 많은 프로젝트가 jsp를 사용하고 있기에 jsp로 개발 후 vue.js로 변경을 계획하고 있다.

 

Spring Boot에서 jsp를 사용하기 위해 webapp과 WEB-INF 폴더를 포함한 구조로 프로젝트 구성을 변경한다. 

 

webapp : 스프링에서 웹을 정의하는 root 폴더
WEB-INF : J2EE 사양에 따라 정의된 표준 폴더 구조
view : JSP 파일들만 넣어 사용하는 폴더 

 

 

JSP 사용을 위한 ViewResolver 설정 변경을 한다.

 

#jsp
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp

 

프로젝트 구조가 변경되었으므로 ViewResolver의 경로(path)를 수정해야한다. Spring Boot는 환경 요소 값을 application.properties 파일에서 설정할 수 있다. 

 

 

📑 root(localhost:8081)로 요청했을 때 hello world가 뜨도록 페이지 만들기 

 

HomeController에 hello 메서드를 만든다. return에 String형의 index는 / 요청이 들어오면 index 파일로 접근하도록 하는데 반환되는 viewname을 뜻한다. 

 

package com.wish.library;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HomeController {

    @GetMapping("/")
    public String hello(){
        return "index";
    }
}

 

 

<index.jsp>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Spring Boot Application</title>
</head>
<body>Hello, Spring Boot App</body>
</html>

 

 

src/java/LibraryApplication의 main 메서드를 실행시키면 프로젝트가 실행된다. 

 

반응형