Class<?> clazz = constructorInfo.getDeclaringClass().getType();
AspectManager manager = AspectManagerFactory.getAspectManager(metaData);
boolean hasInstanceMetaData = rootHasSubInstanceMetaData(metaData);
ContainerCache cache = ContainerCache.initialise(manager, clazz, metaData, hasInstanceMetaData);
AOPProxyFactoryParameters params = new AOPProxyFactoryParameters();
Object target = createTarget(cache, params);
params.setProxiedClass(target.getClass());
params.setMetaData(metaData);
params.setTarget(target);
params.setContainerCache(cache);
params.setMetaDataHasInstanceLevelData(hasInstanceMetaData);
return proxyFactory.createAdvisedProxy(params);
}