JAVA/Spring
Spring-등급제회원_기본예제(1)
아랑팡팡
2023. 6. 27. 14:03
728x90
스프링핵심원리 - 기본편
1. Java11, IntelliJ
2. 프로젝트
Gradle Groovy Project
SpringBoot : 2.7.10
Project Metadata
Group : hello
Artifact : core
Java : 11
설치가 완료되고 IntelliJ에 들어가서
File -> Settings -> Gradle (Build and run using, Run tests using)을 IntelliJ IDAE로 바꿔준다.
3. 요구사항
회원
- 기입, 조회
- 일반회원, VIP회원
주문과 할인
- 회원 상품주문
- 회원 등급에 따라 할인적용
hello.core.member
Gradle : 회원의 등급을 나타내는 Gradle은 열거형으로 표현
public enum Gradle {
BASIC,
VIP
}
Member : 회원의 정보를 담는다.
package hello.core.member;
public class Member {
private Long id;
private String name;
private Gradle gradle;
public Member(Long id, String name, Gradle gradle) {
this.id = id;
this.name = name;
this.gradle = gradle;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Gradle getGradle() {
return gradle;
}
public void setGradle(Gradle gradle) {
this.gradle = gradle;
}
}
MemberRepository : 회원정보를 저장하고 Id를 조회하는 메서드를 정의하는 인터페이스
package hello.core.member;
public interface MemberRepository {
void save(Member member);
Member findById(Long memberId);
}
MemberService : 회원가입과 회원조회를 위한 메서드정의
package hello.core.member;
public interface MemberService {
void join(Member member);
Member findMember(Long memberId);
}
MemberServiceImpl : MemberService인터페이스의 구현체로 MemoryMemberRepository를 사용해 회원가입과 회원조회 긴능을 호출한다.
package hello.core.member;
public class MemberServiceImpl implements MemberService{
private final MemberRepository memberRepository = new MemoryMemberRepository();
@Override
public void join(Member member){
memberRepository.save(member);
}
@Override
public Member findMember(Long memberId){
return memberRepository.findById(memberId);
}
}
MemoryMemberRepository
package hello.core.member;
import java.util.HashMap;
import java.util.Map;
public class MemoryMemberRepository implements MemberRepository{
private static Map<Long, Member> store = new HashMap<>();
@Override
public void save(Member member){
store.put(member.getId(), member);
}
@Override
public Member findById(Long memberId){
return store.get(memberId);
}
}
728x90
반응형
LIST