인터페이스 형태가 아닌 클래스 형태에 대해서 프록시를 적용해야할 때가 있을 수 있다.
이럴 때는 어떻게 해야할까?
인터페이스를 implements 하는 것이 아닌 클래스를 extends 해주면 된다.
그 다음은 동일하게 @Override를 해줘서 내부 메소드를 구현해 덮어써주면 된다.
다만 클래스 형태에 프록시를 적용할 때는 신경써줘야 할 점이 있다.
- 자바 기본 문법에 의해 자식 클래스를 생성할 때는 항상 super()로 부모 클래스의 생성자를 호출해야 한다.
- 이 부분을 생략하면 기본 생성자가 호출되는데 부모 클래스에서 기본 생성자가 없는 경우 파라미터를 넣어서 super(파라미터) 형식으로 받아야 한다.
- 프록시는 부모 객체의 기능을 사용하지 않기 때문에 super(null)을 입력하면 되긴 한다.
- 인터페이스 기반의 프록시는 이런 고민을 하지 않아도 된다.
'Spring > 이론' 카테고리의 다른 글
[스프링 기초] Bean, 의존성 주입 DI에 대한 나만의 고찰 (0) | 2024.01.23 |
---|---|
[AOP 기반] 프록시 팩토리, 포인트컷, 어드바이스, 어드바이저란? (0) | 2024.01.17 |
[JPA] 응답 값으로 DTO를 전달해야 하는 이유 (0) | 2023.10.04 |
[JPA] 준영속 엔티티란? 더티체킹이란? (0) | 2023.09.14 |
동적 쿼리 VS 정적 쿼리 차이, 예시 (0) | 2023.09.06 |