Spring Boot, Doma2, Gradle의 초기 설정 요약
14293 단어 doma2spring-boot이클립스gradle자바
처음에
Eclipse로 개발할 때 Spring Boot + Doma2 + Gradle의 초기 설정으로 항상 빠져 있으므로 자신을 위해 정리한다.
환경
설정 절차
(선택 사항) Spring Initializer로 응용 프로그램의 편지지 만들기
Eclipse 플러그인을 통해 만들고 있지만 브라우저 또는 curl이든 괜찮습니다.
Doma2에 종속성 추가
build.gradledependencies {
// ... 省略
implementation 'org.seasar.doma.boot:doma-spring-boot-starter:1.4.0'
annotationProcessor 'org.seasar.doma:doma-processor:2.35.0'
}
Eclipse 설정하기
build.gradle
의 plugins 에 Eclipse 설정용의 플러그 인을 추가한다.
build.gradleplugins {
// ...
id 'com.diffplug.eclipse.apt' version '3.23.0'
}
gradle eclipse
를 실행하고 설정을 반영합니다.
$ ./gradlew eclipse
Starting a Gradle Daemon (subsequent builds will be faster)
BUILD SUCCESSFUL in 16s
5 actionable tasks: 5 executed
Eclipse 설정 (주석 처리)이 완료되었는지 확인할 수 있습니다.
간단한 API 만들기
htps : // 기주 b. 이 m / 도마 f 라메를 rk / 도마 - sp 링 g - 보오 t / t 레에 / 1.4.0 의 README 에 따라, 기본적으로 작성합니다.
엔티티 정의
Reservation.javapackage com.example.demo;
import org.seasar.doma.Entity;
import lombok.Data;
@Data
@Entity
public class Reservation {
private Integer id;
private String name;
}
Dao Interface 정의
ReservationDao.javapackage com.example.demo;
import java.util.List;
import org.seasar.doma.Dao;
import org.seasar.doma.Insert;
import org.seasar.doma.Select;
import org.seasar.doma.boot.ConfigAutowireable;
import org.springframework.transaction.annotation.Transactional;
@ConfigAutowireable
@Dao
public interface ReservationDao {
@Select
public List<Reservation> selectAll();
@Insert
@Transactional
public int insert(Reservation reservation);
}
ReservationDao#selectAll
에 커서를 놓고 마우스 오른쪽 버튼으로 클릭 > Doma > Jump to Sql File을 누르면 빈 SQL 파일이 생성됩니다. (Eclipse에 Doma Tools 플러그인을 추가하는 경우)
※ DOMA4019가 발생한 경우는 (보충) DOMA4019 에러가 발생한 경우을 참조하십시오.
SQL 파일에 쿼리 작성
selectAll.sqlSELECT
id,
name
FROM reservation
ORDER BY name ASC
Service, Controller 클래스 정의
ReservationService.javapackage com.example.demo;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ReservationService {
@Autowired
private ReservationDao reservationDao;
public List<Reservation> selectAll() {
return reservationDao.selectAll();
}
public int insert(Reservation reservation) {
return reservationDao.insert(reservation);
}
}
ReservationController.javapackage com.example.demo;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ReservationController {
@Autowired
private ReservationService reservationService;
@GetMapping(path = "/")
public List<Reservation> selectAll() {
return reservationService.selectAll();
}
@PostMapping(path = "/")
public int insert(@RequestBody Reservation reservation) {
return reservationService.insert(reservation);
}
}
시작 시 Reservation 테이블 만들기
HSQLDB 이라는 Java 의 인메모리 DB 를 사용합니다. src/main/resources
바로 아래에 schema.sql
를 배치하면 시작시 테이블 작성 스크립트를 흘릴 수 있습니다.
schema.sqlCREATE TABLE reservation (
id IDENTITY,
NAME VARCHAR(50)
);
API 동작 확인
POST(등록)
POST http://localhost:8080 HTTP/1.1
Content-Type: application/json
{
"id": 1,
"name": "サンプルA"
}
응답;
HTTP/1.1 200
Content-Type: application/json
Transfer-Encoding: chunked
Date: Sun, 12 Jul 2020 15:09:30 GMT
Connection: close
1
GET(전건 취득)
GET http://localhost:8080 HTTP/1.1
응답;
HTTP/1.1 200
Content-Type: application/json
Transfer-Encoding: chunked
Date: Sun, 12 Jul 2020 15:10:20 GMT
Connection: close
[
{
"id": 1,
"name": "サンプルA"
}
]
(보충) DOMA4019 오류가 발생한 경우
다음과 같이 SQL 파일의 절대 경로가 예상대로는 아니며 DOMA4019 오류가 발생하는 경우에 대해.
[DOMA4019] The file "META-INF/com/example/demo/ReservationDao/selectAll.sql" is not found in the classpath. The absolute path is "C:\Git\springboot-doma2-sample\bin\main\META-INF\com\example\demo\ReservationDao\selectAll.sql".
대상 프로젝트에서 오른쪽 클릭 > 속성 > Java 빌드 경로를 수정합니다.
프로젝트의 기본 출력 폴더 ⇒ 특정 출력 폴더 ( bin/main
)로 수정.
끝에
작성한 애플리케이션은 리포지토리에 저장되었습니다. build.gradle
의 전량을 참조하고 싶은 경우 등에 봐 주세요.
참고
dependencies {
// ... 省略
implementation 'org.seasar.doma.boot:doma-spring-boot-starter:1.4.0'
annotationProcessor 'org.seasar.doma:doma-processor:2.35.0'
}
plugins {
// ...
id 'com.diffplug.eclipse.apt' version '3.23.0'
}
$ ./gradlew eclipse
Starting a Gradle Daemon (subsequent builds will be faster)
BUILD SUCCESSFUL in 16s
5 actionable tasks: 5 executed
htps : // 기주 b. 이 m / 도마 f 라메를 rk / 도마 - sp 링 g - 보오 t / t 레에 / 1.4.0 의 README 에 따라, 기본적으로 작성합니다.
엔티티 정의
Reservation.java
package com.example.demo;
import org.seasar.doma.Entity;
import lombok.Data;
@Data
@Entity
public class Reservation {
private Integer id;
private String name;
}
Dao Interface 정의
ReservationDao.java
package com.example.demo;
import java.util.List;
import org.seasar.doma.Dao;
import org.seasar.doma.Insert;
import org.seasar.doma.Select;
import org.seasar.doma.boot.ConfigAutowireable;
import org.springframework.transaction.annotation.Transactional;
@ConfigAutowireable
@Dao
public interface ReservationDao {
@Select
public List<Reservation> selectAll();
@Insert
@Transactional
public int insert(Reservation reservation);
}
ReservationDao#selectAll
에 커서를 놓고 마우스 오른쪽 버튼으로 클릭 > Doma > Jump to Sql File을 누르면 빈 SQL 파일이 생성됩니다. (Eclipse에 Doma Tools 플러그인을 추가하는 경우)※ DOMA4019가 발생한 경우는 (보충) DOMA4019 에러가 발생한 경우을 참조하십시오.
SQL 파일에 쿼리 작성
selectAll.sql
SELECT
id,
name
FROM reservation
ORDER BY name ASC
Service, Controller 클래스 정의
ReservationService.java
package com.example.demo;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ReservationService {
@Autowired
private ReservationDao reservationDao;
public List<Reservation> selectAll() {
return reservationDao.selectAll();
}
public int insert(Reservation reservation) {
return reservationDao.insert(reservation);
}
}
ReservationController.java
package com.example.demo;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ReservationController {
@Autowired
private ReservationService reservationService;
@GetMapping(path = "/")
public List<Reservation> selectAll() {
return reservationService.selectAll();
}
@PostMapping(path = "/")
public int insert(@RequestBody Reservation reservation) {
return reservationService.insert(reservation);
}
}
시작 시 Reservation 테이블 만들기
HSQLDB 이라는 Java 의 인메모리 DB 를 사용합니다.
src/main/resources
바로 아래에 schema.sql
를 배치하면 시작시 테이블 작성 스크립트를 흘릴 수 있습니다.schema.sql
CREATE TABLE reservation (
id IDENTITY,
NAME VARCHAR(50)
);
API 동작 확인
POST(등록)
POST http://localhost:8080 HTTP/1.1
Content-Type: application/json
{
"id": 1,
"name": "サンプルA"
}
응답;
HTTP/1.1 200
Content-Type: application/json
Transfer-Encoding: chunked
Date: Sun, 12 Jul 2020 15:09:30 GMT
Connection: close
1
GET(전건 취득)
GET http://localhost:8080 HTTP/1.1
응답;
HTTP/1.1 200
Content-Type: application/json
Transfer-Encoding: chunked
Date: Sun, 12 Jul 2020 15:10:20 GMT
Connection: close
[
{
"id": 1,
"name": "サンプルA"
}
]
(보충) DOMA4019 오류가 발생한 경우
다음과 같이 SQL 파일의 절대 경로가 예상대로는 아니며 DOMA4019 오류가 발생하는 경우에 대해.
[DOMA4019] The file "META-INF/com/example/demo/ReservationDao/selectAll.sql" is not found in the classpath. The absolute path is "C:\Git\springboot-doma2-sample\bin\main\META-INF\com\example\demo\ReservationDao\selectAll.sql".
대상 프로젝트에서 오른쪽 클릭 > 속성 > Java 빌드 경로를 수정합니다.
프로젝트의 기본 출력 폴더 ⇒ 특정 출력 폴더 ( bin/main
)로 수정.
끝에
작성한 애플리케이션은 리포지토리에 저장되었습니다. build.gradle
의 전량을 참조하고 싶은 경우 등에 봐 주세요.
참고
POST http://localhost:8080 HTTP/1.1
Content-Type: application/json
{
"id": 1,
"name": "サンプルA"
}
HTTP/1.1 200
Content-Type: application/json
Transfer-Encoding: chunked
Date: Sun, 12 Jul 2020 15:09:30 GMT
Connection: close
1
GET http://localhost:8080 HTTP/1.1
HTTP/1.1 200
Content-Type: application/json
Transfer-Encoding: chunked
Date: Sun, 12 Jul 2020 15:10:20 GMT
Connection: close
[
{
"id": 1,
"name": "サンプルA"
}
]
다음과 같이 SQL 파일의 절대 경로가 예상대로는 아니며 DOMA4019 오류가 발생하는 경우에 대해.
[DOMA4019] The file "META-INF/com/example/demo/ReservationDao/selectAll.sql" is not found in the classpath. The absolute path is "C:\Git\springboot-doma2-sample\bin\main\META-INF\com\example\demo\ReservationDao\selectAll.sql".
대상 프로젝트에서 오른쪽 클릭 > 속성 > Java 빌드 경로를 수정합니다.
프로젝트의 기본 출력 폴더 ⇒ 특정 출력 폴더 (
bin/main
)로 수정.끝에
작성한 애플리케이션은 리포지토리에 저장되었습니다. build.gradle
의 전량을 참조하고 싶은 경우 등에 봐 주세요.
참고
Reference
이 문제에 관하여(Spring Boot, Doma2, Gradle의 초기 설정 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shukawam/items/ca3db198926b1b484c15텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)