작성
·
330
0
답변 1
2
제 생각에는 크게 2가지 이유가 있을 것 같네요!
우선 첫번째로는 적어주신대로 JDK 동적 프록시 같은 경우에는 인터페이스를 반드시 필요로하기 때문입니다. 실제 개발을 하다보면 인터페이스 없이 구체 클래스에 의존하는 경우도 많은데, CGLib 덕분에 AOP를 적용하기 위한 모든 빈들에게 인터페이스를 만들어주지 않아도 되기 때문입니다.
그리고 두번째로는 JDK 프록시를 적용한다면 인터페이스 주입만 가능한 반면에 CGLib을 적용하면 인터페이스 주입과 구체 클래스 주입이 모두 가능하기 때문입니다. 그러므로 구현체(구체 클래스)에 의존해야 하는 경우가 있다면 유연하게 대처할 수 있습니다. 만약 JDK 프록시가 적용되었을 때 구체 클래스를 주입받으려고 하면 빈을 찾을 수 없어서 에러가 발생하기 때문입니다.
혹시 잘못된 내용이나 부족한 설명 있으면 영한님께서 교정해주시면 좋을 것 같네요!
감사합니다:)
고맙습니다^^!