mybatis为什么用的是mapper接口

zqlmianshi / 2024-09-25 / 原文

接口》代理类》beandefinition》注册器》spring容器

把接口的代理类生成bean定义放到spring容器中怎么弄?如下图:

 

public class MyfactoryBean implements FactoryBean {

private Class clazz;

public MyfactoryBean(Class clazz){

this.clazz = clazz;
}


@Override
public Object getObject() throws Exception {
Class[] clazzes = new Class[]{this.clazz};
    //proxy.newProxyInstance生成代理类
Object proxy = Proxy.newProxyInstance(this.getClass().getClassLoader(),clazzes,new MyInvocation());
return proxy;
}

@Override
public Class<?> getObjectType() {
return this.clazz;
}

@Override
public boolean isSingleton() {
return false;
}
}
public class MyInvocation implements InvocationHandler {
public MyInvocation(){

}
// invocationHandler 的invoke方法作用是动态代理增强
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("This is a proxy of ImportTestDao");
return null;
}
}