요구사항 추가

알파로그·2023년 3월 25일
0

Spring MVC 활용 기술

목록 보기
19/42
post-custom-banner

🔗 git repository

  • 판매 여부 - Boolean 으로 구현 🔗
    • 판매 오픈 여부
    • 체크 박스로 선택할 수 있다.
  • 등록 지역 - List 와 Map 으로 구현 🔗
    • 서울, 부산, 제주
    • 체크 박스로 다중 선택할 수 있다.
  • 상품 종류 - enum 으로 구현 🔗
    • 도서, 식품, 기타
    • 라디오 버튼으로 하나만 선택할 수 있다.
  • 배송 방식 - Class 로 구현 🔗
    • 빠른 배송
    • 일반 배송
    • 느린 배송
    • 셀렉트 박스로 하나만 선택할 수 있다.

✏️ 상품 종류 구현 준비

  • enum 타입으로 도서, 식품 , 기타를 추가해주었다.
    • 괄호 안의 값은 discription 이라고 부른다.
  • property 접근법으로 사용할 예정이기 때문에 Getter 가 꼭 필요하다.
    • getter 가 없으면 thymeleaf 가 enum 을 조회할 때 500 에러를 발생시킨다.
package hello.itemservice.domain.item;

@Getter
public enum ItemType {

    BOOK("도서"), FOOD("음식"), ETC("기타");

    private final String description;

    ItemType(String description) {
        this.description = description;
    }
}

✏️ 배송 구현 준비

  • code 에 따라 어떤 배송방식을 선택했는지 확인
  • displayName 은 선택된 코드에 따라서 빠른, 일반, 느린 배송인지 클라이언트에게 보여주는 용도
package hello.itemservice.domain.item;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * FAST : 빠른 배송
 * NORMAL : 일반 배송
 * SLOW : 느린 배송
 */
@Data
@AllArgsConstructor
public class DeliveryCode {

    private String code;
    private String displayName;
}

✏️ Item 객체에 속성을 추가한다.

package hello.itemservice.domain.item;

import lombok.Data;

import java.util.List;

@Data
public class Item {

    private Long id;
    private String itemName;
    private Integer price;
    private Integer quantity;

    private Boolean open; // 판매여부
    private List<String> region; // 등록 지역
    private ItemType itemType; // 상품 종류
    private String deliveryCode; // 배송 방식

    public Item() {
    }

    public Item(String itemName, Integer price, Integer quantity) {
        this.itemName = itemName;
        this.price = price;
        this.quantity = quantity;
    }
}
profile
잘못된 내용 PR 환영
post-custom-banner

0개의 댓글