Spring을 패턴화해서 일단 익히기 (멤버 등록/조회하기)
- controller
- dto
- entity
- repository
- service
패키지 만들어서 구분하기

멤버 등록 및 조회를 위한 entity
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.Getter;
import lombok.NoArgsConstructor;
@Getter
@Entity
@NoArgsConstructor
public class Member {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
public Member(String name){
this.name = name;
}
}
controller
import lombok.RequiredArgsConstructor;
import org.example.springprac4.dto.MemberSaveRequestDto;
import org.example.springprac4.dto.MemberSaveResponseDto;
import org.example.springprac4.dto.MemberSimpleResponseDto;
import org.example.springprac4.service.MemberServics;
import org.springframework.http.ResponseEntity;
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;
import java.util.List;
@RestController
@RequiredArgsConstructor
public class MemberController {
private final MemberServics memberService;
@PostMapping("/members") //멤버 저장하는 메서드
public ResponseEntity<MemberSaveResponseDto> saveMember(@RequestBody MemberSaveRequestDto requestDto){
return ResponseEntity.ok(memberService.saveMember(requestDto));
}
@GetMapping("/members") //멤버 조회하는 메서드
public ResponseEntity<List<MemberSimpleResponseDto>> getMembers() {
return ResponseEntity.ok(memberService.getMembers());
}
}
service
import lombok.RequiredArgsConstructor;
import org.example.springprac4.dto.MemberSaveRequestDto;
import org.example.springprac4.dto.MemberSaveResponseDto;
import org.example.springprac4.dto.MemberSimpleResponseDto;
import org.example.springprac4.entity.Member;
import org.example.springprac4.repository.MemberRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@Service
@RequiredArgsConstructor
public class MemberServics {
private final MemberRepository memberRepository;
@Transactional
public MemberSaveResponseDto saveMember(MemberSaveRequestDto memberSaveRequestDto) {
// 멤버 저장하는 service
Member newMember = new Member(memberSaveRequestDto.getName());
Member savedMember = memberRepository.save(newMember);
return new MemberSaveResponseDto(savedMember.getName());
}
public List<MemberSimpleResponseDto> getMembers() {
//멤버 조회하는 Service
List<Member> members = memberRepository.findAll();
List<MemberSimpleResponseDto> memberSimpleresponseDtos = new ArrayList<>();
// 조회는 id와 이름만 나올수 있게 따로 클래스 만듬
for(Member member : members) {
memberSimpleresponseDtos.add(new MemberSimpleResponseDto(member.getId(),member.getName()));
}
return memberSimpleresponseDtos;
}
}
repository
import org.example.springprac4.entity.Member;
import org.springframework.data.jpa.repository.JpaRepository;
public interface MemberRepository extends JpaRepository<Member,Long> {
}
// repository 는 interface 생성
dto
import lombok.Getter;
@Getter
public class MemberSaveRequestDto {
private String name;
}
@Getter
public class MemberSaveResponseDto {
private final String name;
public MemberSaveResponseDto(String name){
this.name = name;
}
}
@Getter
public class MemberSimpleResponseDto {
private final Long id;
private final String name;
public MemberSimpleResponseDto(Long id, String name){
this.id = id;
this.name = name;
}
}
자꾸 쳐보면서 익숙해 지기
'java 배우기 > TIL' 카테고리의 다른 글
| JPA , Entity (0) | 2024.08.23 |
|---|---|
| Spring Boot 서버 포트 변경하기 (0) | 2024.08.21 |
| local database 확인하기 (0) | 2024.08.19 |
| HTTP Method (0) | 2024.08.16 |
| 상태 코드 status code (0) | 2024.08.13 |