일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- JDBC
- kotlin
- 스프링
- 김영한
- jpa
- 알고리즘
- Exception
- pointcut
- springdatajpa
- 그리디
- java
- 인프런
- spring
- JPQL
- transaction
- Servlet
- 자바
- Spring Boot
- Greedy
- 스프링 핵심 원리
- SpringBoot
- 스프링 핵심 기능
- AOP
- db
- Android
- Proxy
- Thymeleaf
- 백준
- http
- QueryDSL
- Today
- Total
목록한계 (3)
개발자되기 프로젝트
JDK 동적 프록시를 사용하면서 의존관계 주입을 할 때 어떤 문제가 발생하는지 코드로 알아보자. 1. ProxyDIAspect, Test @Slf4j @Aspect public class ProxyDIAspect { @Before("execution(* hello.aop..*.*(..))") public void doTrace(JoinPoint joinPoint){ log.info("[proxyDIAdvice] {}", joinPoint.getSignature()); } } @Slf4j @SpringBootTest(properties = {"spring.aop.proxy-target-class=false"}) //jdk 동적 프록시 @Import(ProxyDIAspect.class) public clas..
JDK 동적 프록시와 CGLIB를 사용해서 AOP 프록시를 만드는 방법에는 각각 장단점이 있다. JDK 동적 프록시는 인터페이스가 필수이고, 인터페이스를 기반으로 프록시를 생성한다. CGLIB는 구체 클래스를 기반으로 프록시를 생성한다. 물론 인터페이스가 없고 구체 클래스만 있는 경우에는 CGLIB를 사용해야 한다. 그런데 인터페이스가 있는 경우에는 JDK 동적 프록시나 CGLIB 둘중에 하나를 선택할 수 있다. 스프링이 프록시를 만들때 제공하는 ProxyFactory 에 proxyTargetClass 옵션에 따라 둘중 하나를 선택해서 프록시를 만들 수 있다. proxyTargetClass=false --> JDK 동적 프록시를 사용해서 인터페이스 기반 프록시 생성 proxyTargetClass=true..
1. 상품 정보 수정 시 요구사항 데이터를 등록할 때와 수정할 때는 요구사항이 다를 수 있다. 등록시 기존 요구사항 타입 검증 가격, 수량에 문자가 들어가면 검증 오류 처리 필드 검증 상품명: 필수, 공백X 가격: 1000원 이상, 1백만원 이하 수량: 최대 9999 특정 필드의 범위를 넘어서는 검증 가격 * 수량의 합은 10,000원 이상 수정시 요구사항 등록시에는 quantity 수량을 최대 9999까지 등록할 수 있지만 수정시에는 수량을 무제한으로 변경할 수 있다. 등록시에는 id 에 값이 없어도 되지만, 수정시에는 id 값이 필수이다. 만약 요구사항 만족을 위해 id에 @NutNull을 적용해보자. 수정시에는 문제가 없지만 등록 시에는 문제가 생긴다. 현재 logic은 등록시 id를 입력하지 않는..