class EruptApplication implements ImportBeanDefinitionRegistrar {

    private static Class<?> primarySource;

    private static final Set<String> scanPackage = new HashSet<>();

    public static Class<?> getPrimarySource() {
        return primarySource;
    }

    public static String[] getScanPackage() {
        return scanPackage.toArray(new String[0]);
    }

    @SneakyThrows
    @Override
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {<FILL_FUNCTION_BODY>}
}

        Class<?> clazz = ClassUtils.forName(importingClassMetadata.getClassName(), ClassUtils.getDefaultClassLoader());
        Optional.ofNullable(clazz.getAnnotation(SpringBootApplication.class)).ifPresent(it -> primarySource = clazz);
        EruptScan eruptScan = clazz.getAnnotation(EruptScan.class);
        try {
            Class.forName("org.springframework.boot.devtools.RemoteUrlPropertyExtractor");
            log.error("spring-boot-devtools 与 erupt 同时存在会出现各种奇怪的问题，建议移除该依赖！！！");
        } catch (ClassNotFoundException ignored) {
        }
        if (eruptScan.value().length == 0) {
            scanPackage.add(clazz.getPackage().getName());
        } else {
            Stream.of(eruptScan.value()).filter(pack -> !pack.equals(EruptConst.BASE_PACKAGE)).forEach(scanPackage::add);
        }
    
<no_super_class>