SSH需要的关键技术

1  代理  (用来进行类的增强  和service实现类一样都继承相同的接口)

       静态代理---------创建一个代理类,运行之前就已经确定了代理某个service实现类

       动态代理---------不需要创建代理类,通过工厂产生代理对象,在运行时才生成代理

                     jdk动态代理:target=Proxy.newProxyInstance(target.getClass().getClassLoader()目标类加载器,

                                                                                              目标类实现的接口target.getClass().getInterfaces(),

                                                                                              new InvocationHandler(){

                                                                                                            public Object invoke(Object proxy,Method method 目标方法,Objects[] args目标方法参数){

                              method.invoke(target 这个引用外部类的变量必须是final修饰的,args);}

}内部匿名类,增强在这里面完成)

                CGLib动态代理(code generation lib):jdk动态代理要求目标类实现相同的接口,若目标不存在接口,则无法使用该方式实现。GBLib不需要实现接口,底层是生成一个目标类的子类来增强,所以目标类必须可继承,不能用final修饰。

                SSH需要的关键技术_第1张图片

 

2反射

你可能感兴趣的:(Java编程,工作fighting)