class DeclBeanDefinition implements BeanDefinitionRegistryPostProcessor {

    private final LFLog LOG = LFLoggerManager.getLogger(this.getClass());
    @Override
    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {<FILL_FUNCTION_BODY>}

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {

    }

    private Class<?> getRawClassFromBeanDefinition(BeanDefinition beanDefinition){
        try{
            Method method = ReflectUtil.getMethodByName(DeclBeanDefinition.class, "getResolvableType");
            if (method != null){
                Object resolvableType = ReflectUtil.invoke(beanDefinition, method);
                return ReflectUtil.invoke(resolvableType, "getRawClass");
            }else{
                return ReflectUtil.invoke(beanDefinition, "getTargetType");
            }
        }catch (Exception e){
            LOG.error("An error occurred while obtaining the rowClass.",e);
            return null;
        }
    }
}

        DefaultListableBeanFactory defaultListableBeanFactory = (DefaultListableBeanFactory) registry;

        String[] beanDefinitionNames = defaultListableBeanFactory.getBeanDefinitionNames();

        Arrays.stream(beanDefinitionNames).filter(beanName -> {
            BeanDefinition beanDefinition = defaultListableBeanFactory.getMergedBeanDefinition(beanName);
            Class<?> rawClass = getRawClassFromBeanDefinition(beanDefinition);
            if (rawClass == null){
                return false;
            }else{
                return Arrays.stream(rawClass.getMethods()).anyMatch(method -> AnnotationUtil.getAnnotation(method, LiteflowMethod.class) != null);
            }
        }).forEach(beanName -> {
            BeanDefinition beanDefinition = defaultListableBeanFactory.getMergedBeanDefinition(beanName);
            Class<?> rawClass = getRawClassFromBeanDefinition(beanDefinition);
            List<DeclWarpBean> declWarpBeanList = DeclComponentParserHolder.loadDeclComponentParser().parseDeclBean(rawClass);

            declWarpBeanList.forEach(declWarpBean -> {
                GenericBeanDefinition newBeanDefinition = new GenericBeanDefinition();
                newBeanDefinition.setBeanClass(DeclWarpBean.class);
                newBeanDefinition.setScope(ConfigurableBeanFactory.SCOPE_SINGLETON);
                MutablePropertyValues mutablePropertyValues = new MutablePropertyValues();
                mutablePropertyValues.add("nodeId", declWarpBean.getNodeId());
                mutablePropertyValues.add("nodeName", declWarpBean.getNodeName());
                mutablePropertyValues.add("nodeType", declWarpBean.getNodeType());
                mutablePropertyValues.add("rawClazz", declWarpBean.getRawClazz());
                mutablePropertyValues.add("methodWrapBeanList", declWarpBean.getMethodWrapBeanList());
                mutablePropertyValues.add("rawBean", beanDefinition);
                newBeanDefinition.setPropertyValues(mutablePropertyValues);
                defaultListableBeanFactory.setAllowBeanDefinitionOverriding(true);
                defaultListableBeanFactory.registerBeanDefinition(declWarpBean.getNodeId(), newBeanDefinition);
            });
        });
    
<no_super_class>