💡 서비스란, 비즈니스 로직을 처리하는 계층을 말한다. 즉, 사용자를 등록하거나 주문을 처리하는 비즈니스 로직 이 여기에 담긴다. 컨트롤러에서 요청을 받으면, 서비스가 일을 처리하고, 필요하면 데이터베이스와 연결해 데이터를 가져오거나 저장한다.
파일 경로: src/main/java/만든 파일명/service(만들어야함)/MemberService
package section4.section4_spring.service;
import section4.section4_spring.domain.Member;
import section4.section4_spring.repository.MemberRepository;
import section4.section4_spring.repository.MemoryMemberRepository;
import java.util.List;
import java.util.Optional;
public class MemberService {
private final MemberRepository memberRepository = new MemoryMemberRepository();
//회원가입
public Long join(Member member) {
//같은 이름이 있는 중복은 회원가입 x
Optional<Member> result = memberRepository.findByname(member.getName());
result.ifPresent(m -> { //m은 result 값을 의미한다. 람다식 내부 코드는 result 값이 존재한다면 실행하게 될 코드이다.
throw new IllegalStateException("이미 존재하는 회원입니다."); //예외를 발생시키고 메시지를 전달
});
memberRepository.save(member);
return member.getId();
}
public List<Member> findMembers(){
return memberRepository.findAll();
}
public Optional<Member> findOne(Long id) {
return memberRepository.findById(id);
}
}
여기서 다른 코드는 어려울 것이 없기에 회원가입 코드만 살펴보자.
result.ifPresent(m -> { //m은 result 값을 의미한다. 람다식 내부 코드는 result 값이 존재한다면 실행하게 될 코드이다.
throw new IllegalStateException("이미 존재하는 회원입니다."); //예외를 발생시키고 메시지를 전달
});
- ifPresent
- result 내부에 값이 존재하는지 확인하는 것
- m -> { ... }
- m은 result 값 자체를 의미한다. 람다식 코드는 result 값이 존재하는 경우 실행된다.
'Server > Spring' 카테고리의 다른 글
스프링 빈 등록하기 - 1. 컴포넌트 스캔과 자동 의존관계 설정 (0) | 2024.08.25 |
---|---|
회원관리 - 백엔드 개발) 4. 회원 서비스 테스트하기 (0) | 2024.08.25 |
회원관리 - 백엔드 개발) 2. 각각의 repository 메소드 테스트 하기 (0) | 2024.08.24 |
회원관리 - 백엔드 개발) 1. 회원 도메인과 Repository 만들기 (0) | 2024.08.24 |
JSON 데이터를 직접 반환하여, 템플릿을 거치지 않고 API 응답을 처리하기(API 활용하여 개체 JSON으로 반환하기) (0) | 2024.08.24 |