package com.java110.core.proxy; import org.springframework.beans.factory.FactoryBean; import org.springframework.stereotype.Component; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; /** * @ClassName ServiceProxyFactory * @Description TODO * @Author wuxw * @Date 2019/5/15 15:56 * @Version 1.0 * add by wuxw 2019/5/15 **/ @Component public class ServiceProxyFactory implements FactoryBean { @Override public ITestService getObject() throws Exception { Class interfaceType = ITestService.class; InvocationHandler handler = new ServiceInvocationHandler(interfaceType); return (ITestService) Proxy.newProxyInstance(interfaceType.getClassLoader(), new Class[]{interfaceType}, handler); } @Override public Class getObjectType() { return ITestService.class; } @Override public boolean isSingleton() { return true; } }