2023.01.09 - [SPRING] - Spring Data JPA - todolist 실습(1-3) DTO
Service (CRUD 작업처리)
- service 인터페이스를 선언하고 단순한 기능만을 선언한다.
- 할 일 목록 불러오기
- 할 일 등록
- 할 일 삭제
- TodoServiceImpl
- 실제 구현 클래스는 반드시 '인터페이스이름 + Impl'로 작성한다.(파일의 이름이 틀린 경우 제대로 동작하지 않는다.)
- 구현체 (같은 기능에서 다르게 구현할 수 있다.) TodoServiceImpl implements TodoService
- TodoServiceImpl은 TodoRepository를 주입받도록 구현한다.
- @RequiredArgsConstructor : 생성자 주입 방식(객체를 생성할 때 문제가 발생하는지를 미리 확인할 수 있는 방법) 필요한 생성자 함수를 자동으로 작성 가능하다. 단, final 키워드를 사용한 인스턴스들만 객체로 등록한다.
TodoService
package com.jpa.todolist.service;
import com.jpa.todolist.dto.TodoResponse;
import java.util.List;
public interface TodoService {
// 할일 목록 불러오기
List<TodoResponse> todoList();
// 할일 등록
String insertTodos(String todos);
// 할일 삭제
String deleteTodos(String id);
}
TodoServiceImpl
import com.jpa.todolist.dto.TodoResponse;
import com.jpa.todolist.entity.Todo;
import com.jpa.todolist.repository.TodoRepository;
import com.jpa.todolist.service.TodoService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@RequiredArgsConstructor // 해당필드를 생성자로부터 받겠다.
@Service
public class TodoServiceImpl implements TodoService { // 구현체, 같은 기능에서 다르게 구현될 수 있다.
private final TodoRepository todoRepository;
@Override
public List<TodoResponse> todoList() {
return todoRepository.findAll().stream()
.map(en->new TodoResponse(en))
.collect(Collectors.toList());
}
@Override
public String deleteTodos(String id) {
try {
todoRepository.deleteById(Long.valueOf(id));
} catch (Exception e){
// e.printStackTrace();
return "failed";
}
return "success";
}
@Override
public String insertTodos(String todos) {
try {
todoRepository.save(Todo.builder()
.todos(todos)
.build());
} catch (Exception e){
// e.printStackTrace();
return "failed";
}
return "success";
}
}
'SPRING' 카테고리의 다른 글
VO & DAO & DTO란 무엇인가 (0) | 2023.01.19 |
---|---|
웹 프로젝트의 기본 구조 (0) | 2023.01.18 |
Spring Data JPA - todolist 실습(1-3) DTO (0) | 2023.01.09 |
Spring Data JPA - todolist 실습(1-2) Repository (0) | 2023.01.05 |
Spring Data JPA - todolist 실습(1-1) Entity (0) | 2023.01.04 |