AR삽질러

Spring-등급제회원_기본예제(1) 본문

JAVA/Spring

Spring-등급제회원_기본예제(1)

아랑팡팡 2023. 6. 27. 14:03
728x90

https://start.spring.io/

 

스프링핵심원리 - 기본편

 

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

'JAVA > Spring' 카테고리의 다른 글

Spring-등급제회원_기본예제(3)  (0) 2023.06.27
Spring-등급제회원_기본예제(2)  (0) 2023.06.27
Spring-객체지향이란?(용어정리)  (0) 2023.06.24
Spring기초 설명  (0) 2023.04.03
Spring게시판실습  (0) 2023.04.03