본문 바로가기

spring boot

spring boot 01 [ 기본설정, 라이브러리, 빌드 ]

 

 

Spring boot 프로젝트를 계획하고 진행하기에 앞서

인프런에서 김영한 강사님의 스프링 입문 강의를 듣고있다.

앞으로의 포스트은 강의내용을 정리하고, 스스로 복습하는 내용으로 올릴예정이다.

 

 

 

 

 

설치 버전

java - 17
spring boot -  3.2.0 

 

(spring boot 2.버전대의 지원이 끝났다. 3버전대는 java 17버전과의 호환으로 이와같이 설치했다.)

 

위와같이 설정하고 GENERATE 눌러준다.

 

 

 

워크스페이스에 저장받고 압축을 풀어준뒤 해당 폴더를 인텔리제이에서 열었다.

이때 build.gradle 클릭하고 열어주면 된다.

자동으로 설치되야할 부분이 설치된다.

 

 

일단 내장된 서버가 있기때문에 웹에서 실행이 되는지 확인해본다.

 

main에서 실행을 해주었는데 아래와 같은 에러문구가 떴다.

=> Process 'command 'C:\Program Files\Java\jdk-17\bin\java.exe'' finished with non-zero exit value 1

 

검색해보니 해결방법은 간단했다.

 

'다음을 사용하여 빌드 및 실행'과

'다음을 사용하여 테스티 실행' 에

Gradle(디폴트)로 설정되어있는것을

IntelliJ IDEA로 변경해주면 된다.

 

 

 

 

 

이렇게 해주고 실행을 했더니 port 에러가 떠서

cmd창에 netstat -a 로 port 리스트를 보니,

8080포트는 이미 오라클DB에서 사용중이었다.

 

 

 

 

오라클을 당분간 사용할일이 없을것같아 삭제하고

다시 실행해주니 잘 돌아갔다

<= 이렇게 화면이 뜨면 정상 !

 

 

 

 

 

 

 

 

 

[ 라이브러리 ]

 

 

Gradle, Maven 같은 OO은 의존관계가 있는 라이브러리를 함께 다운로드 한다. 

스프링 부트와 관련된 라이브러리를 쓰면 스프링 코어까지 다 땡겨서 관련된 것들이 다 셋팅이 되어 기능을 구현할 수 있게 해준다.

 

 

*/ 스프링 부트 라이브러리 /*

spring-boot-starter-web

▷ spring-boot-starter-tomcat : 톰캣(웹서버)

▷  spring-webmvc : 스프링 웹 MVC

spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진(View)

 

spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅

▷  spring-boot

   ▶ spring-core

▷  spring-boot-starter-logging

    ▶ logback, slf4j

 

*/ 테스트 라이브러리 /*

spring-boot-starter-test

junit : 테스트 프레임워크

 mockito : 목 라이브러리

 assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리

 spring-test : 스프링 통합 테스트 지원

 

 

 

[ View ]

 

index.html 파일을 만들어서 내용을 넣고 run을 한다.

 

index.html은 static 정적파일이기때문에 그냥 페이지만 딱 하고 보여주는데서 끝난다.

그래서 thymeleaf(템플릿 엔진)를 사용한다.

 

- HelloController.java

package hello.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.thymeleaf.model.IAttribute;

@Controller
public class HelloController {

    @GetMapping("hello")
    public String hello(Model model){
        model.addAttribute("data","hello!!");
        return "hello";
    }
}

 

- hello.html

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요.' + ${data}">안녕하세요. 손님</p>
</body>
</html>

 

이렇게 화면이 출력됩니당

 

 

 

[ Build ]

 

  cmd 열어서 경로를 워크스페이스로 이동한다 (cd 경로)

  디렉토리 확인한다 (dir)    gradlew.bat 있는 경로까지 이동!     gradlew.bat 입력  

  'BUILD SUCCESSFUL'이라고 뜨고 build 파일이 생성된것을 확인할 수 있다.

 

▶  build/libs로 이동한다 ▶ dir  

 

 

 

 

 

 

이렇게 출력이 된다. hello-spring jar 파일 두개 중 아래꺼를 복사해서 실행해준다.

(이때 인텔리제이는 실행이 중단된 상태여야 한다!)