https://start.spring.io/main-> java ->hellospring.Application ->run클릭세팅 gradle -> inteliJ로 변경controller : 클라이언트의 요청에 진입하는 지점이며 요청에따라어떤 service(기능
\-비즈니스 요구사항과 설계회원회원가입과 회원조회를 할 수 있다회원은 일반과 VIP 두가지 등급이 있다회원데이터를 저장 할 DB가 아직 미정이다주문과 할인 정책회원은 상품을 주문할 수 있다회원 등급에 따라 적용되는 할인 정책이 다르다VIP등급의 회원은 1000원을 고정
MemberServiceImpl(멤버서비스 구현체) 이전코드구현체가 직접 어떤 저장소를 사용할지 너무나도 구체적으로 지정하는 모습이다.인터페이스에만 의존하는것이 이상적인 모습이다new코드따라서 위와 같이 기존 코드를 지우고 생성자를 만들어 준다order/Appconfi
스프링 컨테이너 등록(앞 내용과 이어짐) ApplicationContext 를 스프링 컨테이너라 한다. ApplicationContext 는 인터페이스이다 스프링 컨테이너는 설정 정보를 참
기존의 AppConfig를 통한 방법은 클라이언트가 요청을 할 때마다 객체들을 생성하는 문제점이 있다 -> 엄청난 메모리 낭비아래의 memberService로 테스트를 해보자테스트를 돌려보면 생성된 MemberServiceImpl이 다른것을 확인할 수 있다참고로 테스트
구현체를 사용하려면은 (인스턴스로)인터페이스 변수명 = new 구현체() 이런식으로 원래 쓴다
ComponentScan 할 때 OrderService가 @Component 붙어있으니 컨테이너에 등록을 해줄텐데 그 때 생성자가 호출이 되고 생성자를 호출할 때 @Autowired가 있네 하면서 스프링 컨테이너 에서 MemberRepository랑 DiscountPo
초기화 = 객체 다 만들어지고 의존관계다 생성되고나서 처음으로 뭔가 제대로 실행되는것그래서 의존관계 주입이 완료되면 스프링은 스프링 빈에게 이제 초기화(앱을 이제 사용하라) 하라고 콜백메서드를 통해 알려줌또 소멸할 때도 소멸콜백을 줌스프링 빈의 이벤트 라이프사이클스프링
스프링빈이 존재 할 수 있는 범위를 의미함기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다.스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다.request: 웹 요청
클라이언트가 요청-> 정적인것은 web server가 다 처리함/ 어 근데 동적인 로직이 필요하네? -> WAS한테 넘김
임베디드 타입(복합 값 타입)새로운 값 타입을 직접 정의해서 사용할 수 있는데, JPA에서는 이것을 임베디드 타입(embedded type)이라 합니다.중요한 것은 직접 정의한 임베디드 타입도 int, String처럼 값 타입이라는 것입니다.'1' 대 '다' 관계에서는
엔티티매니저팩토리가 요청이 올대마다 엔티티매니저를 생성해서 줌영속성 컨텍스트란 뭘까?엔티티를 영구 저장하는 환경이라는 뜻근데 DB에 저장한다는게 아니고 영속성 컨텍스트에 저장하는것임persist 하면 영속상태em.persist하면 비영속상태였던 객체가 엔티티 매니저 안
현재 Task와 Tag가 다대다 관계라 중간에 Task_Tag테이블을 생성해 각각1대다 & 다대1로 풀어준 상태@JoinColumn에 있는 name속성은 Task_Tag엔티티 안에있는 task필드를 DB에 어떤 이름으로 저장할 것인가를 의미한다 아래와 같이 Task엔티
추가예정
CrudRepository.java안에 이런게 있다공부예정
어떻게 보면 당연한건데 순간 헷갈렸다@PathVariable로 저렇게 받는다는 것은 저 id라는 변수가 url에 포함되어 있어야한다.
위 처럼 줄 바꿈해서 쓰고싶으면 저렇게 바꾸기 직전 line에 공백(space)를 넣어주는게 좋다. 저렇게 하지 않으면 에러가 계속 났음..
No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer개발하던 중 위와 같
일단 현재 스프링부트 버전은 3.0.2이다.Swagger랑 연동시키려면 (연동이라는 표현이 맞는지는 모르겠는데) springfox vs springdoc 둘 중 하나를 쓴다고 하는데 스프링부트 버전이 올라오면서 springfox는 그에 맞춰 업데이트가 잘 안되고 spr
원래 하나의 서블릿이나 JSP로 다 처리했었는데 이렇게 하나로 다 모아두면 유지보수도 힘들고 비효율적임그래서 JSP로 처리하던 것을 컨트롤러(Controller)와 뷰(View)라는 영역으로 서로 역할을 나누고 컨트롤러가 HTTP요청을 받고 비즈니스로직을 실행하고모델