初始化方法不能接受任何参数,无返回值类型
代理:JDK 代理(ProxyFactory)、CGLIB代理
JDK代理只能代理接口,不能代理类,要代理的每一个对象都必须实现至少一个接口。
CGLIB代理可以代理接口、类,代理性能要远远好过JDK代理。
使用JDK代理时JVM会拦截所有的方法调用,并将其传至代理的invoke()方法。
JDK代理在调用invoke()方法之前不能判断一个方法是否接受通知。所以,对于代理上没有被通知的方法,invoke()方法也会被调用,所有的检查都会进行一遍,最后该方法还是会用反射来调用,这就造成了额外的开销。
如果要让ProxyFactory使用JDK代理,那么我们需要用setProxyInterfaces()方法设定一组需要代理的接口。