public class TargetClass {
public void doSomething() {
System.out.println("Doing something.");
}
}
public class AspectClass implements Aspect {
public Advice advice() {
return (joinpoint) -> {
System.out.println("Before advice");
joinpoint.proceed();
System.out.println("After advice");
};
}
public Pointcut pointcut() {
return (joinpoint) -> true;
}
}
public class AopConfig {
public static void main(String[] args) {
AspectClass aspect = new AspectClass();
TargetClass target = new TargetClass();
ProxyFactory factory = AopProxyFactory.getInstance();
factory.addAspect(aspect);
TargetClass proxy = factory.createProxy(target);
proxy.doSomething();
}
}