class RocketMqConsumerPostProcessor implements BeanPostProcessor, PriorityOrdered {

    private String appName;

    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName)
                                                                              throws BeansException {<FILL_FUNCTION_BODY>}

    @Override
    public int getOrder() {
        return LOWEST_PRECEDENCE;
    }

    public void setAppName(String appName) {
        this.appName = appName;
    }
}

        if (bean instanceof DefaultRocketMQListenerContainer container) {
            Assert.isTrue(StringUtils.hasText(appName), TRACER_APPNAME_KEY + " must be configured!");
            SofaTracerConsumeMessageHook hook = new SofaTracerConsumeMessageHook(appName);
            container.getConsumer().getDefaultMQPushConsumerImpl().registerConsumeMessageHook(hook);
            return container;
        }
        return bean;
    
<no_super_class>