
❓ 스프링부트?
스프링부트(Spring Boot)는 자바의 웹 프레임워크로 기존 스프링 프레임워크(Spring Framework)에 톰캣 서버를 내장하고 여러 편의 기능들을 추가하여 꾸준한 인기를 누리고 있는 프레임워크입니다.
스프링부트 프로젝트를 생성하는 방법에는 두 가지가 있습니다.
- spring initializr 사이트를 이용하여 생성 방법
- 인텔리제이에서 생성하는 방법 (인텔리제이 무료버전은 프로젝트 기능이 없습니다.)
💡 spring initializr를 이용한 방법
https://start.spring.io/ 이곳에 접속합니다. 또는 구글에서 spring initalizr를 검색하여 첫 번째 사이트에 접속하시면 됩니다.



- 프로젝트는 Gradle-Groovy 선택
- Language는 Java 선택
- Spring Boot는 2.7.16 버전 선택 -> jdk 11버전과 호환성이 좋음 // 최신 버전이면 3.x.x 버전을 선택하시면 됩니다.
- Artifact 이 부분만 수정하면 됩니다.
- Packaging은 War 선택
- Java는 jdk 버전에 따라 선택해주시면 됩니다.
💡 스프링부트 라이브러리 추가



라이브러리를 추가하면 오른편에 세 가지가 추가된 것을 볼 수 있습니다.



다운받은 압축파일을 작업 폴더에 풀어주신후 인텔리제이로 프로젝트를 열어줍니다.

인텔리제이 내에서 다운로드가 실행됩니다. (시간 소요)

💡 프로젝트 구성


💡 JSP 라이브러리 추가
✅ build.gradle 추가
스프링부트에서 JSP 라이브러리 추가 지원이 종료되어 수작업으로 라이브러리를 추가해주어야 합니다.


dependencies {
// jsp 라이브러리 추가
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' // 추가
implementation 'javax.servlet:jstl' // 추가
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
annotationProcessor 'org.projectlombok:lombok'
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

💡 MVC 디자인 패턴을 이용한 Java 코딩

설정파일을 담을 config 폴더와 MVC 디자인 패턴중 C인 controller 부분을 만들 폴더를 생성합니다.
컨트롤러는 일종의 tv리모컨 역할을 한다고 생각하면됩니다.
✅ JSP를 위한 설정파일
JSP를 위한 설정파일을 생성합니다.
설정파일은 config 폴더에 생성합니다.
package com.example.helloworld.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* packageName : com.example.HelloSpringBoot.config
* fileName : WebMvcConfig
* author : kangtaegyung
* date : 2023/07/29
* description : JSP 설정 파일
* 요약 :
* @Configuration : 어노테이션, 자바파일에 환경설정 기능 부여
* <p>
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2023/07/29 kangtaegyung 최초 생성
*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
}
✅ controller 만들기
실습을 위한 HelloWorldController 파일을 생성합니다.
파일은 controller 폴더에 생성합니다.
✔ Controller 어노테이션 추가
클래스 위에 @Controller 어노테이션을 추가해줍니다.
@Controller
public class HelloWorldController {
@GetMapping("/exam00/hello")
public String Hello(Model model){
return "/exam00/hello.jsp";
}
}
✅ 프로퍼티파일에 환경설정 값 추가


# 서버 포트
server.port=8000
# jsp 파일 경로
spring.mvc.view.prefix=/WEB-INF/views/
# jsp 파일 확장자 정의
#spring.mvc.view.suffix=.jsp
# 자바 소스 수정시 자동 재시작
spring.devtools.restart.enabled=true
✅ view 만들기

뷰를 만들기위해 파일경로를 지정해줍니다.
hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
Hello.jsp
</body>
</html>
✅ 실행
HelloWorldApplication 클래스에서 실행을 합니다.

웹 페이지에서 http://localhost:8000 에 접속합니다.

HelloWorldController 클래스에 있는 주소를 복사하고

http://localhost:8000/exam00/hello 를 입력합니다.

💡 인텔리제이에서 스프링 부트 프로젝트 생성하기

1) 인텔리제이에서 새 프로젝트를 눌러줍니다.

2) 새 프로젝트에서 이름을 지정하고 경로를 적절한 위치에 지정 하고 JDK는 11버전 Java도 11버전
패키지 생성은 War 파일로 지정하고 다음을 눌러줍니다.

3) dpendencies를 지정해줍니다. 스프링부트 버전은 2.7.16 으로 라이브러리는 사진과 같이 3개만 체크하고 생성합니다.

✅ UTF-8 설정 : 한글 깨짐 방지

✅ 기타 설정


📖 요약
# SpringBoot 프로젝트 생성
1) 웹 제작(Spring initializer) : http://start.spring.io
- Project 빌드 : Gradle - Groovy
- spring boot 버전 : 2.7.16 선택
- spring Metadata : Artifact : 프로젝트 명 넣기 (예: helloworld)
- Packaging : War 선택
- Java : jdk 11 선택
- (오른쪽 화면) Dependencies : ADD Dependencies 버튼 클릭 : 라이브러리 추가
(1) Spring Boot DevTools
(2) Lombok
(3) Spring Web
- GENERATE 버튼 클릭 : zip 압축된 spring 프로젝트 파일 다운로드 됨
2) 인텔리제이 Ultimate(상용버전) : 위의 기능이 내장되어 있음
- 이름 : 프로젝트명 넣기 (예 : helloworld)
- 나머지는 위와 동일 Dependencies는 체크하기
# SpringBoot 환경 설정
1) 인텔리제이 툴 설정 : 에디터 - 파일 인코딩 - (우측화면) 프로퍼티 파일 인코딩 : UTF-8
명확한 Native에서 ASCII로 변환(체크!)
2) 빌드, 실행, 배포 - 컴파일러 - (우측화면) 프로젝트 자동빌드(체크)
3) 고급설정 - (우측화면) 컴파일러 - 개발된 애플리케이션이 현재... (체크)

✅ build.gradle jsp 라이브러리 추가
dependencies {
// TODO : jsp 라이브러리 추가 : 오른편 상단에 새로 생기는 아이콘 클릭!
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' // 추가
implementation 'javax.servlet:jstl' // 추가
✅ application.properties : 스프링의 환경을 설정하는 파일
# TODO : 스프링의 환경을 설정하는 파일
# 서버 포트 : 스프링의 기본포트 (8080) -> 8000(변경)
server.port=8000
# jsp 파일 경로 지정 : jsp 폴더 경로 추가
spring.mvc.view.prefix=/WEB-INF/views/
# jsp 파일 확장자를 자동으로 붙여주는 기능 : 컨트롤러 : url -> 연결될 jsp : hello.jsp (확장자 자동으로 붙여줌)
#spring.mvc.view.suffix=.jsp
# 자바 소스가 수정되면 서버 자동 재시작을 함
spring.devtools.restart.enabled=true
✅ Java 폴더 -> ControllerExamApplication : 스프링부트 실행 파일
✅ config 폴더 -> WebMvcConfig : JSP를 사용하기 위한 설정 파일
package com.example.controllerexam.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* packageName : com.example.HelloSpringBoot.config
* fileName : WebMvcConfig
* author : kangtaegyung
* date : 2023/07/29
* description : JSP를 사용하기 위한 설정 파일
* 요약 :
* @Configuration : 어노테이션, 자바파일에 환경설정 기능 부여
* <p>
* ===========================================================
* DATE AUTHOR NOTE
* -----------------------------------------------------------
* 2023/07/29 kangtaegyung 최초 생성
*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
}
✅ controller 폴더 -> HelloWorldController 파일 : url에 해당하는 jsp 파일로 연결해주는 파일
package com.example.controllerexam.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
/**
* packageName : com.example.helloworld.controller
* fileName : HelloWorldController
* author : GGG
* date : 2023-10-04
* description : Hello World Controller
* 요약 :
* url에 해당하는 jsp 파일로 연결하기
* @명칭 : 자바의 어노테이션이라고 하고, 주로 함수/클래스/변수 위에 붙여서 사용힘
* 작은 기능이 함수에 추가됨
* 목적 : 사용하면 코딩량이 획기적으로 줄어듦
* @Controller : 클래스에 컨트롤러 기능을 부여하는 어노테이션
* @GetMapping("url")함수() { return "jsp페이지명"; }
* => url이 웹브라우저 주소창에 입력되면 -> jsp 페이지가 화면에 출력됨
* <p>
* ===========================================================
* DATE AUTHOR NOTE
* —————————————————————————————
* 2023-10-04 GGG 최초 생성
*/
@Controller
public class HelloWorldController {
@GetMapping("/exam00/hello")
public String Hello(Model model){
return "/exam00/hello.jsp";
}
}
📖 연습문제
// TODO : 연습) url : "/exam00/hello2"
// => jsp : "/exam00/example01.jsp"
화면에 Hello JSP & Spring boot 출력해보세요!
📌 example01.jsp
<%-- 아래 page 지시자가 있어야 함 --%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
Hello JSP & Spring boot
</body>
</html>
📌 HelloWorldController.java
@Controller
public class HelloWorldController {
// TODO : 연습) url : "/exam00/hello2"
// => jsp : "/exam00/example01.jsp" : 화면에 Hello JSP & Spring boot 출력
@GetMapping("/exam00/hello2")
public String Hello2(Model model){
return "/exam00/example01.jsp";
}
}
📌 ControllerExamApplication 파일에서 실행
📌 http://localhost:8000/exam00/hello2 접속
📌 실행결과

'Spring Boot > 스프링부트 예제' 카테고리의 다른 글
객체 형태로 변환하는 어노테이션 (0) | 2023.10.05 |
---|---|
JSP의 조건문 (1) | 2023.10.05 |
URL 매개변수를 ArrayList 형태로 View에 전달 (0) | 2023.10.05 |
@RequestMapping, @RequestParam (1) | 2023.10.05 |
Model (0) | 2023.10.04 |