@Override
    public void after(Object target, Object beanNameObject, Object result, Throwable throwable) {
        try {
            if (result == null || throwable != null) {
                return;
            }

            if (!(beanNameObject instanceof String)) {
                if (logger.isWarnEnabled()) {
                    logger.warn("invalid type:{}", beanNameObject);
                }
                return;
            }
            final String beanName = (String) beanNameObject;


            final Method getWrappedInstanceMethod = getGetWrappedInstanceMethod(result);
            if (getWrappedInstanceMethod != null) {
                final Object bean = getWrappedInstanceMethod.invoke(result);
                processBean(beanName, bean);
            } else {
                if (logger.isWarnEnabled()) {
                    logger.warn("Fail to find getWrappedInstance method. beanName:{}", beanName);
                }
            }
        } catch (Throwable t) {
            if (logger.isWarnEnabled()) {
                logger.warn("Unexpected exception", t);
            }
        }
    }
@author Jongho Moon <jongho.moon@navercorp.com>
@author Taejin Koo
agent-module/plugins/spring/src/main/java/com/navercorp/pinpoint/plugin/spring/beans/interceptor/CreateBeanInstanceInterceptor.java