배움/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을 사용하는 것이 좋습니다.
반응형