포트폴리오를 위한 스프링 프로젝트를 하나 생성 할 것이다.
해당 프로젝트는 현재 개발중인 게임의 홈페이지를 만들 예정이다.
먼저 스프링 프로젝트를 하나 생성해주자.
해당 홈페이지에서 기본 프로젝트를 쉽게 만들어 줄 수 있다.
사용할 것은 다음과 같다.
배운것을 사용해 보기위해 여러가지를 추가 해 보았다.
Spring Web,
Oracle Driver,
Thymeleaf
Lombok
Spring Boot Dev Tools
MyBatis Framework
GENERATE 를 클릭하여 파일을 받아주자.
압출을 풀고 해당 파일을 원하는 곳(c 드라이브 같은)에 넣어주고 열어보자
intelliJ 를 이용해서 열어보면 아래와 같은 프로젝트가 나올 것이다.
프로젝트에 몇가지를 추가, 수정 해보자.
1. 폴더 구조 변경.
JSP 를 사용하기 위해 webapp, WEB-INF 등 폴더를 주가 할 것이다.
main 폴더 아래에 webapp 폴더 추가.
webapp 폴더 아래에 WEB-INF 폴더 추가.
WEB-INF 폴더 아래에 views 폴더 추가.
views 폴더 아래에 index.jsp 파일 추가.
index.jsp 내용을 추가한다.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
테스트 메인 페이지 입니다.
홈 컨트롤러 연결 테스트 name의 값은 ${name} 입니다.
</body>
</html>
JSP 테스트를 위하여 컨트롤러를 만들어서 값을 보내 볼 것이다.
main - java -com.(패키지명) 아래에 폴더 및 컨트롤러를 만들어 보자.
controller 패키지 생성
HomeController.java 파일 생성
컨트롤러의 내용을 입력 해 주자.
package 주소를 제외한 내용을 넣어주자.
package com.mangdew.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
//System.out.println("home controller start");
model.addAttribute("name", "HomeController name");
return "index";
}
}
JSP 기본 폴더 구성을 하였으면 Gradle 설정을 해 주어야 한다.
build.gradle 으로 들어가 다음을 추가한다.
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'jakarta.servlet:jakarta.servlet-api' //스프링부트 3.0 이상
implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' //스프링부트 3.0 이상
implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //스프링부트 3.0 이상
application.properties 안의 내용을 수정한다.
(main - resources 안에 있다.)
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
server.servlet.jsp.init-parameters.development=true
View Page 를 지정 해주는 것이다. 접두어 접미어를 알려주고 해당파일을 찾아간다.
prefix : 접두어
suffix : 접미어
서버가 재시작없이 적용 될 수 있게 해준다.
server.servlet.jsp.init-parameters.development=true
데이터 베이스를 아직 연결 하지 않았으니 설정 해 주어야 한게 하나 더 있다.
main - java - com.(패키지명) 안에 어플리케이션 파일이 있을 것이다.
Oracle Driver를 추가 하였지만 아직 연결 하지 않았다.
해당 파일에 아직 디비가 없다고 알려주어야 한다.
아래와 같이 변경 할 것이다.
package com.mangdew;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class MangdewApplication {
public static void main(String[] args) {
SpringApplication.run(MangdewApplication.class, args);
}
}
이제 코끼리를 눌러서 gradle 이 변경 된 것을 적용 해 주자.
Gradle 설정도 바꾸어 주자.
File - Settings 안에서
Build, Execution, Deployment - Build Tools - Gradle 으로 이동한다.
Build and run Using
Run tests using
값을 IntelliJ IDEA 로 변경.
어플리케이션을 실행 해 보자.
홈페이지에 들어가자 다음과 같은 에러가 나왔다.
Error resolving template [index], template might not exist or might not be accessible by any of the configured Template Resolvers
gradle 에서 thymeleaf 를 주석 처리 해주자. 해당 플러그인 때문에 에러가 난거 같다.
이후 접속 시 접속이 잘 되었다.
'Spring' 카테고리의 다른 글
[Spring] 데이터베이스 연습 ( feat. mariadb, HikariCP) (0) | 2024.08.29 |
---|---|
[Spring] 데이터 베이스 연결 (feat. MariaDB, HikariCP) (0) | 2024.08.29 |
[Spring] Lombok 설정 및 사용. (0) | 2024.08.28 |
[Spring] 기본 설명 (1) | 2024.08.27 |
[Spring] STS3 기본 세팅 (0) | 2024.08.27 |