Proxy
-
클래스의 프록시백기선(인프런 강의)/더 자바, 코드를 조작하는 다양한 방법 2020. 6. 16. 20:19
자바에서는 다이내믹 프록시를 인터페이스로 만들어야 하지만 서브 클래스를 만들 수 있는 라이브러리를 사용하여 프록시를 만들 수 있다. CGlib https://github.com/cglib/cglib/wiki 스프링, 하이버네이트가 사용하는 라이브러리 버전 호환성이 좋치 않아서 서로 다른 라이브러리 내부에 내장된 형태로 제공되기도 한다. 예제 pom.xml 추가 cglib cglib 3.3.0 public class Book { String title = "clean code"; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } public class BookService..
-
다이내믹 프록시백기선(인프런 강의)/더 자바, 코드를 조작하는 다양한 방법 2020. 6. 16. 19:27
다이나믹 프록시란? 런타임에 인터페이스 또는 클래스의 프록시 인스턴스 또는 클래스를 만들어 사용하는 프로그래밍 기법 Java는 Interface가 아닌 class타입으로 다이나믹 프록시를 만들 수가 없다. https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/proxy.html 다이나믹 프록시 사용처 스프링 데이터 JPA 스프링 AOP Mockito 하이버네이트 lazy initialzation 프록시 인스턴스 만들기 Object Proxy.newProxyInstance(ClassLoader, Interfaces, InvocationHandler) 예제 package com.example.demo; import java.lang.reflec..