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修饰。

2反射

本文探讨SSH中涉及的关键技术,包括代理和反射。静态代理通过创建代理类实现服务增强,而动态代理则在运行时生成代理对象,JDK动态代理基于接口,CGLib则是通过生成目标类的子类进行增强。反射则允许在运行时操作类和对象,提供了强大的灵活性。
4946





