Spring 177

SpringBoot Error 해결

https://www.inflearn.com/questions/494407?re_comment_id=180025 OrderService의 setAddress부분 에러 / OrderServiceTest부분의 setAddress(new Address부분에러) - 인프런 | 질문 & Address Class 는 아래와 같습니다. package jpabook.jpashop.domain;import lombok.Getter;import javax.persistence.Embeddable;@Embeddable@Getterpublic class Address... www.inflearn.com https://www.inflearn.com/questions/479107 new Address( - 인프런 | 질문 & 답..

Spring/SpringBoot 2022.04.02

도메인 분석 설계 - 요구사항 분석

아래 흐름대로 가보면서 간단한 쇼핑몰을 구현해보자. 요구사항 분석 - 도메인 모델과 테이블 설계 - 엔티티 클래스 개발 - 엔티티 설계시 주의사항 회원 기능 / 상품 기능 / 주문 기능이 따로 구현되어있다. 안의 기능들은 구현해보는 작업을 시작할 것이다. 기능 목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항은 아래와 같다. 상품은 재고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품을 카테고리로 구분할 수 있다. 상품 주문시 배송 정보를 입력할 수 있다. 다음으로는 도메인 모델과 테이블 설계를 알아보자. https://www.inflearn.com/questions/494651?re_comme..

Spring/SpringBoot 2022.04.01

프로젝트 환경설정 - JPA와 DB 설정, 동작확인

참고: 스프링부트를 통해 복잡한 설정이 다 자동화되었다. persistence.xml 도없고, LocalContainerEntityManagerFactoryBean 도 없다. 스프링 부트를 통한 추가 설정은 스프링 부트 메뉴얼을 참고하고, 스프링 부트를 사용하지 않고 순수 스프링과 JPA 설정 방법은 자바 ORM 표준 JPA 프로그래밍 책을 참고하자. application.properties파일을 지우고 application.yml파일을 생성해준다. 세팅을 한번 해주자. // application.yml spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop #4칸 // MBCC=TRUE라는 옵션은 빼준다. username: sa password: dri..

Spring/SpringBoot 2022.03.30

H2 데이터베이스 설치

여기에서 h2데이터베이스를 설치하자. h2 폴더를 풀고 h2 경로 - bin 경로에서 cat h2.sh #!/bin/sh dir=$(dirname "$0") java -cp "$dir/h2-1.4.200.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@" 실행을 시켜보자. ./h2.sh 나머지 과정은 설명란에 있는걸로 따라해본다. 데이터베이스 파일 생성 방법 jdbc:h2:~/jpashop (최소 한번) ~/jpashop.mv.db 파일 생성 확인 이후 부터는 jdbc:h2:tcp://localhost/~/jpashop 이렇게 접속 최소 한번일 때 db파일이 생성이 되는데(맨처음 스프링 세팅할 때는 됐었는데 다시하니까 파일명이 나오지 않는다..) milaju@M..

Spring/SpringBoot 2022.03.30

프로젝트 환경설정 - View 환경 설정

main폴더에 jpabook.jpashop폴더에서 HelloController Class를 만들어준다. @Controller annotation을 달아준다. hello라는 url로 오면 Controller가 호출되겠다고 하는 것이다. model에 아무 값이나 담는다 Model model에 데이터를 실어서 view에 넘길 수 있게 해준다. data key의 값을 hello라는 걸로 넘길거고 // HelloController package jpabook.jpashop; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.G..

Spring/SpringBoot 2022.03.30

SpringBoot 프로젝트 환경설정

여기를 들어가서 생성해보자. 초기세팅은 아래와 같이 해주고 Dependencies에서 WebApplication을 만들때 필요한 Web Starter설치 JSP를 쓰는 대신 Thymeleaf(A modern server-side Java template engine)를 쓰자. JSP는 성능이슈 때문에 거의 안쓰는 추세 / SpringBoot 내장 tomcat에서도 권장하지 않는다. Sprimg Data JPA도 설치를 해준다.(나중에 JPA에 대해서 자세히 알아보고 Spring Data JPA는 도움용으로 쓰는 것으로 알고있자.) DB는 H2 DB를 쓴다. 개발 / 테스트 할 때 많이 쓴다. MySQL 같은 경우는 설치하고 세팅하는 과정이 까다롭지만 H2는 웹어플리케이션 실행할 때 데이터베이스를 메모리상..

Spring/SpringBoot 2022.03.29

JPA와 DB 설정, 동작확인 - 테스트 실행 오류

아래 Test Code를 실행하려고 하니까 에러발생 해결중 // MemberRepositoryTest package jpabook.jpashop; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.jun..

Spring/SpringBoot 2022.03.29

스프링 핵심 원리 이해1 - 주문과 할인 도메인 실행과 테스트

OrderApp class를 먼저 만들어 준다. // OrderApp class package hello.core; import hello.core.member.Grade; import hello.core.member.Member; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.order.Order; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; public class OrderApp { public static void main(String[] args) { MemberSe..

Spring/SpringCore 2022.03.24

스프링 핵심 원리 이해1 - 주문과 할인 도메인 개발

hello.core 밑에 discount 패키지를 만들고 DiscountPolicy라는 interface를 만든다. // DiscountPolicy interface package hello.core.discount; import hello.core.member.Member; public interface DiscountPolicy { /** * @return 할인 대상 금액 */ int discount(Member member, int price); } 이거에 대한 구현체도 만들어 준다. // FixDiscountPolicy package hello.core.discount; import hello.core.member.Grade; import hello.core.member.Member; public..

Spring/SpringCore 2022.03.24

스프링 핵심 원리 이해1 - 주문과 할인 도메인 설계

주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을 미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 클라이언트가 주문 서비스에 제일 먼저 요청을 한다. 예제에서는 상품이라는 item대신 상품명 / 상품 가격을 넘겨주었다. 주문 서비스는 단순히 주문 결과 객체를 만들고 난 후 클라이언트에게 보내는것까지만 적용(실제 DB에 저장하는 것은 생략) 1. 주문 생성: 클라이언트는 주문 서비스에 주문 생성을 요청한다. // Findby..

Spring/SpringCore 2022.03.24