[Jump to SpringBoot : SBB] IntelliJ에서 SpringBoot 사용하기

2022. 4. 18. 09:12· 프로젝트/clone coding
목차
  1. 스프링부트 프로젝트 생성하기
  2. 인텔리제이 사용하기
  3. SpringBoot 프로젝트 열기
  4. 롬복 플러그인 설치 및 동작확인
  5. Auto Reload 설정
  6. 로컬서버실행 & 배포파일생성(gradle)
  7. SpringBoot 실행
  8. Live Reload

프로젝트 개요 : Jump to SpringBoot 클론코딩 - 회원제 QnA 게시판 웹

프로젝트 환경 : IntelliJ, SpringBoot, JPA, H2

프로젝트 코드 : https://github.com/smkim9202/sbb

스프링부트 프로젝트 생성하기

1. Spring Initializr 

스프링부트기반으로 스프링 관련 프로젝트를 만들어주는 사이트 접속

https://start.spring.io/

 

2. 설정 선택

왼쪽에 있는 부분을 각자 원하는대로 적어주고 선택해준다.

  • Maven Project / Gradle Project : 필요한 라이브러리를 땡겨서 오고 빌드하는 라이프사이클까지 관리하는 툴로 요즘은 Gradle을 사용하는 추세
  • Spring Boot 버전 : 2.6.6 (SNAPSHOT 또는 M2, M3 가 붙지 않은 최신 버전을 선택한다.)
    SNAPSHOT : 아직 만들고 있는 버전
    M1 : 정식 릴레이즈 버전은 아님
  • Project Metadata
    Group : 기업도메인명
    Artifact : 프로젝트명

 ADD DEPENDENCIES... 클릭 후 

"ADD DEPENDENCIES..." 버튼을 클릭 후 팝업창에서 원하는 의존성을 추가 해준다.

  • Dependencies
    Spring Web
    Thymeleaf
    ....

3. 다운로드 후 압축 풀어주기

GENERATE 버튼 클릭해 압축파일 다운로드 

압축파일 프로젝트홈(원하는 위치)에 압축해제

 

인텔리제이 사용하기

SpringBoot 프로젝트 열기

Open File or Project -> 압축 푼 파일 -> build.gradle -> Open as Project

 

롬복 플러그인 설치 및 동작확인

Settings -> Plugins -> lombok 검색 -> 설치

(디폴트로 롬복이 설치되어 있으면 enable 되었는지만 확인)

 

설치 후 동작 확인하기 : 롬복 이용하여 Getter, Setter

HelloLombok.java 파일 생성 후 코드 작성 => 아래코드 작성시 오류 없으면 정상

파일명 : 프로젝트/src/java/com/mysite/sbb/HelloLombok.java

//lombok 예제 - Getter, Setter
//롬복을 사용하면 @Getter @Setter 애너테이션 적용만으로 Getter, Setter 메서드를 추가하지 않고도 사용 할 수 있다.
//롬복으로 컴파일된 클래스에는 Getter와 Setter 메서드가 실제로 포함된다.
//@RequiredArgsConstructor 애너테이션을 적용하면 해당 속성에 필요로하는 생성자가 롬복에 의해 자동으로 생성된다.
//  단, final이 없는 속성은 생성자에 포함되지 않는다.
package com.mysite.sbb;


import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;

@RequiredArgsConstructor
@Getter
//@Setter
    // final을 적용하면 setter메서드는 의미가 없어진다. 한번 설정한 값을 변경할수 없기 때문이다.
public class HelloLombok {
    private final String hello;
    private final int lombok;

    public static void main(String[] args) {
        //HelloLombok hl =new HelloLombok();
        //hl.setHello("헬로");
        //hl.setLombok(4);
        HelloLombok hl = new HelloLombok("헬로", 5);

        System.out.println(hl.getHello());
        System.out.println(hl.getLombok());

    }
}

 

Auto Reload 설정

자바파일이나 템플릿 수정시 수작업 없이 자동으로 변경 사항을 적용하는 법

 

- JAVA

Settings -> Build,Execution,Deployment - Compiler -> Build project automatically 체크

Settings -> Advanced Settings -> Allow auto-make to start even~~ 체크

Spring boot Devtools 설치

서버 재시작 없이도 클래스 변경시 서버가 자동으로 재기동 된다.

//build.gradle 파일

dependencies {
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    //developmentOnly : Gradle의 developmentOnly는 개발환경에서만 적용되는 설정으로
    //운영환경에 배포되는 jar, war 파일에는 developmentOnly로 설치된 라이브러리는 제외된다.
    
}

- thymeleaf

파일명 : 프로젝트폴더/src/main/resources/application.properties

(... 생략 ...)
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=file:src/main/resources/templates/

 

로컬서버실행 & 배포파일생성(gradle)

- 그레이들로 로컬 서버 실행

1. 왼쪽 Gradle탭 클릭

2. 그레이들 창에서 '포로젝트폴더/Tasks/application/bootRun' 우클릭

3. Run '프로젝트명[bootRun]' 클릭

4. 로컬서버가 실행되는 모습을 인텔리제이 하단에서 확인

- 배포파일 생성하기

1. 왼쪽 Gradle탭 클릭

2. '포로젝트폴더/Tasks/build/bootJar' 우클릭

3. Run '프로젝트명 [bootJar]' 클릭

4. 오른쪽 Project탭 : 프로젝트/build/libs 디렉터리에서 프로젝트-0.0.1-SNAPSHOT.jar 같은 배포파일 생성 확인

 

SpringBoot 실행

브라우저에 'http://localhost:8080/hello' 입력 했을 때 브라우저 화면에 "Hello World" 문구 출력하는 웹 프로그램

 

1. HelloController.java 생성 

컨트롤러(Controller) : 브라우저의 요청을 처리한다. 서버에 전달된 클라이언트의 요청(URL과 전달된 파라미터 등)을 처리하는 자바 클래스다.

파일명 : 프로젝트/src/java/com/mysite/sbb/HelloController.java

 

 

2. HelloController에 RequestMapping 코드 작성

package com.mysite.sbb;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
//Controller : HelloController 클래스가 컨트롤러의 기능을 수행한다는 의미
public class HelloController {
    @RequestMapping("/hello")
    //RequestMapping : 'http://localhost:8080/hello' URL 요청 발생시 hello 메서드 실행
    //hello URL과 hello 메서드를 매핑하는 역할
    @ResponseBody
    //ResponseBody : hello 메서드의 응답 결과가 문자열 그 자체임을 나타낸다.
    //hello 메서드는 문자열 'Hello World'를 리턴한다. 
    //응답 결과는 문자열이 아닌 HTML파일과 같은 템플릿을 주로 사용한다.
    public String hello(){
        return "Hello World";
    }
}

 

3. 로컬서버 실행 => 웹 출력 확인

gradle로 서버 실행

로컬서버가 실행되는 모습 인텔리제이 하단에서 확인

브라우저 'http://localhost:8080/hello' 접속 후 'Hello World 출력 확인'

 

Live Reload

Spring Boot DevTools 수정내용 리프레시(Refresh) 또는 URL 재호출 없이 변경 사항 확인하기

크롬 브라우저에 LiveReload++ 확장프로그램 설치

https://chrome.google.com/webstore/detail/livereload%20%20/ciehpookapcdlakedibajeccomagbfab

 

LiveReload++

Watches a port and reloads the page if needed.

chrome.google.com

저작자표시 (새창열림)

'프로젝트 > clone coding' 카테고리의 다른 글

[Jump to SpringBoot : SBB] 스프링부트 windows cmd창으로 빌드하고 실행  (0) 2022.04.21
[Jump to SpringBoot : SBB] 서비스와 DTO  (0) 2022.04.20
[Jump to SpringBoot : SBB] thymeleaf 템플릿 엔진(+ROOT URL)  (0) 2022.04.19
[Jump to SpringBoot : SBB] JpaRepository 상속 받은 Repository 테스트해보기(+JUnit 프레임워크)  (0) 2022.04.19
[Jump to SpringBoot : SBB] SpringBoot 기본 요소(Controller, JPA, Entity, Repository)  (0) 2022.04.19
  1. 스프링부트 프로젝트 생성하기
  2. 인텔리제이 사용하기
  3. SpringBoot 프로젝트 열기
  4. 롬복 플러그인 설치 및 동작확인
  5. Auto Reload 설정
  6. 로컬서버실행 & 배포파일생성(gradle)
  7. SpringBoot 실행
  8. Live Reload
'프로젝트/clone coding' 카테고리의 다른 글
  • [Jump to SpringBoot : SBB] 서비스와 DTO
  • [Jump to SpringBoot : SBB] thymeleaf 템플릿 엔진(+ROOT URL)
  • [Jump to SpringBoot : SBB] JpaRepository 상속 받은 Repository 테스트해보기(+JUnit 프레임워크)
  • [Jump to SpringBoot : SBB] SpringBoot 기본 요소(Controller, JPA, Entity, Repository)
개발원슝이
개발원슝이
꾸준히 개발공부를 합니다.
개발원슝이
꾸준히 개발슝이
개발원슝이
전체
오늘
어제
  • ALL (236)
    • 프로젝트 (34)
      • clone coding (19)
      • mini project (5)
      • Team project(with KIC) (10)
    • 문제 (37)
      • 백준 (7)
      • 프로그래머스 (14)
      • 정보처리기사실기 (16)
    • 설치 (9)
    • 개발 기초 (12)
    • 프로그래밍언어 (120)
      • HTML (16)
      • CSS (17)
      • JavaScript (18)
      • JAVA (13)
      • JSP (10)
      • Python (22)
      • C언어 (24)
    • 프레임워크 (6)
      • Spring (3)
      • Django (3)
    • DB (2)
      • MySQL (2)
    • AWS (1)
    • 오류 (2)
    • 이것저것 (6)
    • 전공자 개발 (2)
    • 비전공자 개발 (5)

블로그 메뉴

  • 네이버블로그(강의노트)
  • GitHub
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 점프 투 파이썬
  • 홍정모교수님
  • 백준
  • 코딩테스트
  • 따배씨
  • 생활코딩
  • 인프런
  • 홍정모의 따라하며 배우는 C언어
  • 파이썬공부
  • javascript

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
개발원슝이
[Jump to SpringBoot : SBB] IntelliJ에서 SpringBoot 사용하기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.