사랑하애오
article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 제품 상세 페이지
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:42

제품 상세 페이지 1. ItemController 추가 상품 수정 페이지에서 사용했던 ItemDtl 메소드를 그대로 사용하여 상품 조회 메소드 오버로딩은 파라미터의 순서가 달라도 적용이 됨 2. 제품 상세 페이지 View GitHub 참고 totalPrice 를 계산해서 출력하는 calculateTotalPrice() 메소드 - 처음 화면 출력할 때 수행되고, 그 후에 수량 변동 시 수행됨 3. 제품 상세 페이지 화면

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 메인 화면
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:36

메인화면 1. MainItemDto 메인화면에 출력할 데이터를 위한 DTO 객체 사용자에게 보여질 내용만 포함하고 있음 (등록날짜, 수정날짜, 등록자 등 제외) 2. @QueryProjection Entity 객체를 DTO 객체로 바로 반환하도록 지원하는 어노테이션 @QueryProjection 기능을 사용하기 위해선 QDto 파일 필요 (Maven - compile 수행) 3. 사용자 정의 인터페이스 리포지토리 생성 기존의 ItemRepositoryCustom 클래스에 조회문 추가 ItemRepositoryCustomImpl 클래스에서 getMainItemPage() 메소드 구현 // MainItemDto 객체를 반환 // 멤버변수 초기화는 조회된 결과값에서 MainItemDto 객체 생성자를 통해 지..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 상품 관리 - 상품 목록 페이지
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:34

상품 목록 페이지 1. 상품 목록 페이지 결과 화면 상품 목록 테이블 부분, 하단 페이지 부분, 검색 조건 부분 존재 2. 상품 목록 페이지 View GitHub 참고 스크립트 부분 "검색" 버튼을 클릭하면 조회할 페이지 번호를 다시 "0"으로 설정해서 조회해야함 페이지 번호를 전달 받아 form에 설정된 검색 조건 값들을 초기화하여 QueryString으로 보내는 page() 함수 // "검색" 버튼이 눌리면 $("#searchBtn").on("click",function(e) // form 태그의 전송을 막음 (페이지 번호가 그대로 넘어갈 수 있음) e.preventDefault(); // 페이지 번호를 0으로 설정한 뒤 page 함수 수행 page(0); 상품 목록 테이블 부분 ${items} 변수..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 상품 관리 - 상품 목록 조회 Querydsl
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:33

Querydsl 1. Qdomain 생성 Querydsl 을 사용하기 위해서 Qdomain 생성 Maven의 compile 명령 수행 기존에 존재하던 Entity 객체에 매핑되는 Qdomain 모두 생성 2. 상품 조회 조건 DTO 상품 조회 조건 - 상품 등록일 - 상품 판매 상태 - 상품명 또는 상품 등록자 아이디 상품 조회 조건을 담을 ItemSearchDto 클래스 생성 3. Querydsl & Spring Data Jpa Querydsl 과 Spring Data Jpa 를 함께 사용하기 위해서는 사용자 정의 리포지토리가 필요함 아래와 같은 단계를 거치며 구현하면 됨 ① 사용자 정의 인터페이스 작성 ② 사용자 정의 인터페이스 구현 ③ Spring Data Jpa 리포지토리에서 사용자 정의 인터페이..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 상품 수정
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:31

상품 수정 1. 상품 조회 상품을 수정하려면 해당 상품을 불러와야 함 따라서, ItemService 에 상품 조회 메소드 추가 (조회 기능이므로 읽기 전용으로 불러옴) - Transactional(readOnly = true) 에 대한 궁금증 (참고) item 엔티티와 img 정보 엔티티를 itemFormDto 객체로 변환 후 반환하는 조회 기능 2. 상품 수정 페이지 Controller 상품 등록 페이지를 동일하게 사용 ("저장" 버튼을 "수정" 버튼으로 출력) 수정 대상 상품의 Id 값을 포함한 Get URL 요청으로 상품 수정 페이지를 요청 해당 상품을 조회한 뒤 itemFormDto 객체를 기반으로 상품 수정 페이지 생성 및 반환 // "/admin/item/{값}" 형태로 URL 요청이 들어오면..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 상품 등록하기 - Controller, Service, Repository, Test
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:29

상품 등록 로직 1. application.properties 설정 추가 파일 크기 및 경로 지정 (경로는 프로젝트 외부 디렉토리에 저장함) 2. WebMvcConfigurer 인터페이스 addResourceHandlers 메소드를 오버라이딩하여 파일 업로드 경로 지정 "${uploadPath}" - application.properties 에 설정한 "uploadPath" 프로퍼티 값 " /images/** " 패턴의 URL 은 uploadPath 폴더를 기준으로 탐색 3. 상품 이미지 파일 (File)Service 이미지 파일 저장 로직을 담당할 Service 객체 파일 저장은 DB 에 저장되는 것이 아니기 때문에 Repository 필요 없음 (FileOutputStream 가 대신함) 이미지 파일..

article thumbnail
[VSCODE] SpringBoot 쇼핑몰(MVN) 상품 등록하기 - Entity, DTO, View
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:28

상품 등록 페이지 1. 상품 이미지 Entity Item (상품) Entity 와 다대일 단방향 관계를 갖는 ItemImg Entity 생성 2. modelmapper 라이브러리 추가 상품 등록 화면으로부터 전달받은 DTO 객체를 Entity 로 변환해야함 상품 조회 결과를 화면에 반환할 때 Entity 를 DTO 객체로 변환해야함 modelmapper 라이브러리를 통해서 서로 다른 클래스의 값을 필드의 이름과 자료형이 같으면 getter, setter 를 통해 값을 복사해서 객체를 반환 org.modelmapper modelmapper 2.3.9 3. 상품 관련 DTO 객체 생성 상품을 등록 및 조회할 때 지정된 필드뿐 아니라 추가적인 데이터들의 이동이 많으므로 여러 DTO 이용 상품 이미지에 대한 D..

article thumbnail
[VSCODE] JPA Auditing
JAVA/SpringBoot Shoppingmall 2022. 6. 27. 14:01

Auditing 1. Auditing 엔티티에 공통으로 들어가는 멤버변수들 (등록시간, 수정시간, 등록자, 수정자 등등)을 추상클래스로 만들고, 해당 추상 클래스를 상속받아 엔티티에 공통적인 기능을 수행하도록 하며 엔티티의 생성과 수정을 감시하는 기법 2. Auditing 필요성 여러 엔티티에 공통된 멤버변수가 존재할 때 하나의 추상클래스로 통합하여 구현할 수 있음 등록시간, 수정시간, 등록자, 수정자 등등의 엔티티 상태 변경에 대한 정보를 기록할 수 있음 기록을 바탕으로 버그 문의, 업데이트 변경 대상 조회 등등 여러 상황에서 사용됨 3. AuditorAware 로그인한 사용자를 등록자 및 수정자로 지정하기 위해 AuditorAware 인터페이스를 구현 현재 로그인한 사용자의 정보를 추출 Authent..