-
[Spring Boot] 1-2. 프로젝트 생성 (JSP 사용하기)프로젝트/도서 관리 시스템 2023. 6. 12. 23:23
https://wonisdaily.tistory.com/91
📑 프로젝트 생성
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
📑 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 메서드를 실행시키면 프로젝트가 실행된다.
반응형'프로젝트 > 도서 관리 시스템' 카테고리의 다른 글
[Spring Boot] 2-2. 세션을 사용하는 회원 가입, 회원 정보 수정 (1) 2023.06.19 [Spring Boot] 2-1. 세션을 사용하는 회원 로그인, 로그아웃 (0) 2023.06.19 [Spring Boot] 1-4. 화면 레이아웃 구성 (3) 2023.06.19 [Spring Boot] 1-3. Oracle + MyBatis 연동 테스트 (0) 2023.06.19 [Spring Boot] 1. 도서 관리 프로젝트 기획 (0) 2023.06.12