** Proxy 클래스는 Reflect 클래스 안에 속한다
프록시객체를 생성하면서 인터페이스 타입에 할당해주는 방법
BookService bookService = (BookService) Proxy.newProxyInstance(BookService.class.getClassLoader(), new Class[]{BookService.class},
new InvocationHandler(){
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable{
if(method.getName().equals("rent")){
sout("aaaa");
Object invoke = method.invoke(bookService, args);
sout("bbbb");
return invoke;
}
return method.invoke(bookService, args);
}
});
디버거 찍을 때 보던 코드인데 의문이 풀렸다.. 하 코딩뽕..
- AOP도 이런식으로 구성이 되어있다
- 자바는 클래스 기반 보다는 인터페이스 기반의 프록시가 장려된다
- 클래스 기반 프록시 생성은 CGlib, ByteBuddy를 통해 구현 가능하다.
TIL : JUnit, Mockito (0) | 2021.12.20 |
---|---|
TIL : JUnit - 테스트 순서, Properties (0) | 2021.12.17 |
TIL : JUnit (0) | 2021.12.15 |
TIL: JUnit (0) | 2021.12.14 |
TIL: Anotation Processor (0) | 2021.12.13 |