Framework/Spring Framework
[Spring] AOP 의 Proxy를 보다 쉽게 이해하기 위한 Proxy 패턴 예제
tuning-java
2008. 4. 1. 10:01
먼저 아래의 간단한 소스를 읽어 보자.
package proxytest;
public interface ITempLogic {
public String greet();
}
----------
package proxytest;
public class TempLogicImpl implements ITempLogic {
public String greet() {
return "Hi";
}
}
----------
package proxytest;
public class TempLogicProxy implements ITempLogic {
private ITempLogic itl=null;
public TempLogicProxy(ITempLogic l) {
itl=l;
}
public String greet() {
System.out.println("before");
String r=itl.greet();
System.out.println("after");
return r;
}
public static void main(String args[]) {
ITempLogic l=new TempLogicProxy(new TempLogicImpl());
System.out.println(l.greet());
}
}
----------
간단하게 소스에 대해서 설명을 하자면,
ITempLogic이라는 인터페이스를 하나 만들고,
해당 인터페이스를 구현한 TempLogicImpl 이라는 클래스를 하나 만들었다.
구현된 TempLogicImpl 이라는 클래스를 감싸주는 TempLogicProxy라는 클래스를 만들어 주어서 그 클래스에서 TempLogicImpl을 대행하여 수행해준다.
package proxytest;
public interface ITempLogic {
public String greet();
}
----------
package proxytest;
public class TempLogicImpl implements ITempLogic {
public String greet() {
return "Hi";
}
}
----------
package proxytest;
public class TempLogicProxy implements ITempLogic {
private ITempLogic itl=null;
public TempLogicProxy(ITempLogic l) {
itl=l;
}
public String greet() {
System.out.println("before");
String r=itl.greet();
System.out.println("after");
return r;
}
public static void main(String args[]) {
ITempLogic l=new TempLogicProxy(new TempLogicImpl());
System.out.println(l.greet());
}
}
----------
간단하게 소스에 대해서 설명을 하자면,
ITempLogic이라는 인터페이스를 하나 만들고,
해당 인터페이스를 구현한 TempLogicImpl 이라는 클래스를 하나 만들었다.
구현된 TempLogicImpl 이라는 클래스를 감싸주는 TempLogicProxy라는 클래스를 만들어 주어서 그 클래스에서 TempLogicImpl을 대행하여 수행해준다.