본문 바로가기

프록시2

토비의 스프링 | 6장. AOP3 - 프록시 팩토리빈과 포인트컷 프록시 팩토리 빈 방식의 장점/한계장점데코레이터 패턴과 같은 프록시를 도입하려고 했을 때 고민했던 문제점을 거의 완벽하게 해결해 준다.다이내믹 프록시를 이용하여 타깃 인터페이스를 구현하는 클래스를 일일이 만들지 않아도 된다.하나의 핸들러 메소드를 구현하여 부가기능 코드의 중복 문제를 해결한다.DI 설정만으로 다양한 타깃 오브젝트에 적용 가능하다.한계하나의 클래스 안에 여러개의 메소드 적용은 가능하지만 여러 개의 클래스에 공통적인 부가기능을 제공하는 일은 불가능하다.하나의 타깃에 여러 개의 부가기능을 적용하려 할 때도 문제이다.트랜잭션, 보안 기능, 기타 부가기능을 담은 프록시를 추가하려 해도 설정 코드는 그만큼 추가로 늘어나는 한계가 생긴다.TransactionHandler 오브젝트가 프록시 팩토리 빈 .. 2017. 4. 17.
토비의 스프링 | 6장. AOP2 - 다이내믹 프록시 6.3 다이내믹 프록시와 팩토리 빈우리는 트랜잭션 경계설정과 비즈니스 로직 코드를 분리하기 위해 전형적인 전략 패턴을 사용하였다.부가기능은 자신이 핵심기능을 가진 것처럼 꾸며서 클라이언트가 자신을 거쳐 핵심기능을 사용하도록 했다.그렇게 하기 위해 인터페이스를 통해 부가, 핵심기능을 접근도록 하였다.이렇게 마치 자신이 클라이언트가 사용하려고 하는 실제 대상인 것처럼 위장해서 클라이언트의 요청을 받아주는 것을 대리자, 대리인과 같은 역할을 한다고 하여 프록시(Proxy)라 부른다. 프록시를 통해 최종적으로 요청을 위임받아 처리하는 실제 오브젝트를 타깃(tartget) or 실체(real subject)라 부른다.프록시의 특징은 타깃과 같은 인터페이스를 구현했다는 것과 프록시가 타깃을 제어할 수 있는 것이다... 2017. 4. 7.