什么是动态代理 ?
动态代理是面向切面编程(AOP)的基础
AOP 应用场景:
日志,性能监控,权限检查,数据库事物等
动态代理可以干什么?
动态代理 可以在运行时创建一个类,实现一个 或者多个接口,可以在不修改原来类的基础上动态的为通过该类获取的对象添加方法或者修改行为。
要理解动态代理 ,先要理解静态代理,静态代理是啥?
静态代理:
package JavaBase;
public class SimpleStaticDemo {
static interface IService{
public void sayHello();
}
static class RealService implements IService{
@Override
public void sayHello() {
System.out.println("Say Hello ....");
}
}
static class TraceProxy implements IService{
public IService realService ;
public TraceProxy(IService realService) {
this.realService = realService;
}
@Override
public void sayHello() {
System.out.println("Enter sayHello...");
realService.sayHello();
System.out.println("Leaving sayHello ...");
}
}
public static void main(String[] args) {
IService realService = new RealService();
// 代理类适配器 这个代理类是固定的, 称为是静态代理
IService proxyService = new TraceProxy(realService);
proxyService.sayHello();
}
}
动态代理的实现方式?
实现方式一: 一种是Java SDK 提供
实现方式二:通过第三方库CGLIB提供
真正的平淡是指,生命中曾经历过轰轰烈烈与刻骨铭心后,才感悟到平淡的可贵。而不是一生碌碌无为,却安慰自己平凡是真。
如果一生没能经历一次不求结果的爱情;
如果一生没能有一次为了理想撞的头破血流;
如果一生不曾为了某件事、某个人执着;
如果一生没能活出过最真实的自己,
我们怎么敢说自己过好了这一生,我们又怎么敢说此生无憾呢?
一生太短,也许此刻便是此生。请别敷衍自己,爱你所爱,行你所行,顺从己心,无问西东。