1、当Bean实现接口时,Spring就会用JDK的动态代理。 2、当Bean没有实现接口时,Spring使用CGlib是实现。 3、可以强制使用CGlib(在spring配置中加入)。JDK动态代理实现publicinterfaceUserManager{//新增用户抽象方法 voidaddUser(StringuserName,Stringpassword);//删除用户抽象方法 voiddelUser(StringuserName);}publicclassUserManagerImplimplementsUserManager{//重写新增用户方法 @OverridepublicvoidaddUser(StringuserName,Stringpassword){System.out.println("调用了新增的方法!");System.out.println("传入参数为 userName: "+userName+" password: "+password);}//重写删除用户方法 @OverridepublicvoiddelUser(StringuserName){System.out.println("调用了删除的方法!");System.out.println("传入参数为 userName: "+userName);}}publicclassJdkProxyimplementsInvocationHandler{privateObjecttarget;//需要代理的目标对象 @OverridepublicObjectinvoke(Objectproxy,Methodmethod,Object[]args)throwsThrowable{System.out.println("JDK动态代理,监听开始!");Objectresult=method.invoke(target,args);System.out.println("JDK动态代理,监听结束!");returnresult;}//定义获取代理对象方法 privateObjectgetJDKProxy(ObjecttargetObject){//为目标对象target赋值 this.target=targetObject;//JDK动态代理只能针对实现了接口的类进行代理,newProxyI