@Override public <T> T getNewInstance(final String factoryName) { final Factory<T> factory = getFactory(factoryName); final Proxy<T> proxy = factory.createProxy(this); final T instance = factory.createInstance(getContextManager()); if (proxy != null) { proxy.setInstance(instance); } factory.invokePostConstructs(instance); registerInstance(instance, factory); return (proxy != null) ? proxy.asBeanType() : instance; }