package com.emoon.common.mybatis.config;

import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanNameGenerator;

/**
 * 使用全限定类名作为 Spring BeanName，避免不同模块下同名类（尤其是 MyBatis Mapper）注册冲突。
 */
public class FqcnBeanNameGenerator implements BeanNameGenerator {

    @Override
    public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
        String className = definition.getBeanClassName();
        if (className != null && !className.isBlank()) {
            return className;
        }
        // 兜底：极少发生（某些合成/工厂 BeanDefinition）
        return definition.toString();
    }
}


