티스토리 뷰

배움/JAVA

Srping boot + gradle + jpa 설정

spaces25 2025. 6. 25. 13:48
반응형

✅ 1. Gradle 설정 (build.gradle.kts)

plugins {
    id("org.springframework.boot") version "3.2.5"
    id("io.spring.dependency-management") version "1.1.5"
    kotlin("jvm") version "1.9.23" // Kotlin 사용 시
    kotlin("plugin.spring") version "1.9.23"
    // kotlin("plugin.jpa") version "1.9.23" // Kotlin + JPA 사용할 경우
}

group = "com.example"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_17

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    implementation("org.springframework.boot:spring-boot-starter-web")
    runtimeOnly("com.h2database:h2") // 테스트용 DB
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

☝️ Java를 사용할 경우 Kotlin 관련 플러그인은 제거하세요.


✅ 2. application.yml 설정

src/main/resources/application.yml

spring:
  datasource:
    url: jdbc:h2:mem:testdb
    driver-class-name: org.h2.Driver
    username: sa
    password:
  jpa:
    hibernate:
      ddl-auto: update  # create, create-drop, validate, update 등 선택
    show-sql: true
    properties:
      hibernate:
        format_sql: true
  h2:
    console:
      enabled: true

✅ 3. 엔티티 클래스 예시

// Java 예제
package com.example.demo.entity;

import jakarta.persistence.*;

@Entity
public class Member {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    // getters, setters
}

✅ 4. 리포지토리 인터페이스

package com.example.demo.repository;

import com.example.demo.entity.Member;
import org.springframework.data.jpa.repository.JpaRepository;

public interface MemberRepository extends JpaRepository<Member, Long> {
}

✅ 5. 테스트용 컨트롤러

package com.example.demo.controller;

import com.example.demo.entity.Member;
import com.example.demo.repository.MemberRepository;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/members")
public class MemberController {
    private final MemberRepository repository;

    public MemberController(MemberRepository repository) {
        this.repository = repository;
    }

    @PostMapping
    public Member save(@RequestBody Member member) {
        return repository.save(member);
    }

    @GetMapping
    public List<Member> findAll() {
        return repository.findAll();
    }
}

🔁 실행

Gradle로 프로젝트 실행:

./gradlew bootRun

✅ 추가 팁

  • MySQL 같은 실제 DB를 쓰려면 runtimeOnly("mysql:mysql-connector-java") 추가하고, application.yml에서 spring.datasource.url을 바꾸면 됩니다.
  • ddl-auto는 운영 환경에선 validate 또는 none을 사용하는 것이 좋습니다.
반응형

'배움 > JAVA' 카테고리의 다른 글

Eclipse JAVA, Gradle, JPA 설정  (0) 2025.06.27
SpringBoot Batch 개발 샘플  (0) 2025.06.25
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함