大家都用过,但是可能没有仔细去研究过,今天我们一起看看吧。 项目中最直接的就是 事务,日志 ,就是传说中的spring的AOP功能, 今天我们一起来揭露它的神秘面纱吧。
首先我们来说说静态代理: 我写了一个接口
public interface Hello { public void say(String name); }
然后这是它的实现类
public class HelloImpl implements Hello{ @Override public void say(String name) { System.out.println(name+"-----"); } }
//这是代理类
public class StaticProxy implements Hello{ private Hello hello; public StaticProxy(Hello hello){ this.hello = hello; } @Override public void say(String name) { System.out.println("之前"); System.out.println(name); System.out.println("之后"); } public static void main(String[] args){ new StaticProxy(new HelloImpl()).say("斗神一叶知秋"); } }
console:
之前
斗神一叶知秋
之后
代码很好理解,我就不做过多的讲解了,说说静态代理的优缺点吧
优点:
1.实现了 代理功能
2.简单易容,很容易 也很好理解
缺点:
1.被代理的类变动,代理类也要变动