Spring/JPA활용 SpringBoot 기본

프로젝트 환경 설정

Per ardua ad astra ! 2021. 8. 9. 12:52

프로젝트 환경 설정 

 

 

프로젝트 생성 및 세부 설정 


1. 스프링 부트 스타터(https://start.spring.io/)에서 프로젝트 만들기

   스프링부트 스타터는 스프링 부트에서 프로젝트를 쉽게 만들어주기 위해 제공한다. 

스프링 부트 스타터


project: gradle
springBoot: 2.4.10 버전
GroupId: jpabook
Artifact: jpashop


dependencies 설정
- Spring Web (스프링 스타터팩)
- Thymeleaf (jsp 대체 프로그램, WEB)
- Sptring Data JPA (JPA)
- H2 Database (편한 실습을 위한 DB 설정)
- Lombok (중복된 코드 줄여주는 자바 어노테이션기능)

=> GENERATE 버튼 눌러서 프로젝트 생성 ! 임포트해서 실행 !
JpashopApplication이라는 파일의 Main을 실행하면 다음과 같은 화면이 나옴

프로젝트 생성 후 첫 화면

이 화면이 나오면 연결은 성공한 것이다 ! 테스트 파일도 실행해본다 !!

 

Gradle 확인

 

2. lombok이 잘 실행되도록 추가설정

 

1. Settings 열기. (Ctrl + Alt + s -> Preference(Settings)를 여는 단축키)
2. plugin에서 lombok을 검색해서 잘 깔려있는지 확인 or 업데이트
3. 왼쪽 카테고리 검색에서 Annotation Processors를 찾아서 검색
4. Enable annotaion processing을 체크해준다.

5. 임의의 테스트 클래스를 만들고 @Getter, @Setter 어노테이션이 잘 작동하는지 확인해준다.

@Getter @Setter 어노테이션
get과 set함수가 자동 생성되어 있다.



3. IntelliJ Gradle 대신 자바 직접 실행

 

최근 IntelliJ 버전은 Gradle로 실행을 하는 것이 기본 설정이다. 이렇게 하면 실행속도가 느리다. 다음과 같이 변경하면 자바로 바로 실행해서 실행속도가 더 빠르다.

1. Settings ->  Build, Execution, Deployment Build Tools Gradle

2.

Build and run using: Gradle -> IntelliJ IDEA
Run tests using: Gradle -> IntelliJ IDEA

 

4. Thymeleaf의 이해 (템플릿 엔진)


장점
Natural templates -> 웹브라우저에서 열림

단점
적응하기가 어렵다. 참고문헌을 많이보고 학습하는 것이 중요하다. 

 

만들어서 실행해보기 


(1) HelloController라는 Controller를 생성하고, 모델과 뷰를 설정해준다. 

(Controller와 MVC의 이론적인 내용은 https://ggp03016.tistory.com/29?category=826311 참고)

package jpabook.jpashop;

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

@Controller
public class HelloController {

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


(2) 생성한 뷰인 hello.html을 resources.templates 폴더에 넣고 코드를 짠다.

구조

코드

<!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>

간단하게 xmlns(xml namespce)를 thymleaf로 설정해준다.

 

<p th:text="'안녕하세요. ' + ${data}" > 안녕하세요. 손님 </p>
그냥 순수하게 html을 보여주면 -> 그냥 안녕하세요. 손님으로만 나옴 JSON 처럼 복잡한 코드로 나오는 것이 아님
서버사이드 렌더링을 하면 저 안의 설정 값이 보여지게 됨


실행모습

 

-> 순수한 html 보여줄때


-> 서버를 실행하고 Model에서 data에 값을 넣고 실행을 할 때

서버 연결 후 실행 방법
 - 서버는 JpashopoApplication을 먼저 실행해서 서버를 연결하고 
 - localhost:8080/hello 주소로 들어감

 


5. 정적인 뷰 생성하기 


resources.static 디렉터리에 생성하면된다.

ex)
static에 index.html(메인 홈페이지) 생성

static 디렉터리


코드

<!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>
Hello <a href="/hello">hello</a>
</body>
</html>


실행

메인페이지

 



수정한거 확인하기위해 서버껐다 켰다하지 않기 위한 꿀팁

build.gradle파일에서
implementation 'org.springframework.boot:spring-boot-devtools' 를 추가한다.

-> 개발할 때 도와주는 기능을 다 넣어놈
-> 수정하고 서버를 껐다 킬 필요없이 Build -> Recompile ' '만 실행하고 홈페이지에서 새로고침하면 됨

 

 

이 게시물은 '실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발' 강의를 수강하고 정리한 내용임을 밝힙니다.

출처: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-JPA-%ED%99%9C%EC%9A%A9-1/

 

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의

실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 본

www.inflearn.com