• @SpringBootApplication 注解 scanBasePackages的先后顺序导致的扫描失败问题总结


    1、背景


    在一个多module项目的开发过程中,有一个第三方依赖jar包 cn.hutool 中的SpringUtils死活扫描不到,当时的配置情况是这样的

     启动类配置:


    @SpringBootApplication(scanBasePackages = {"com.xx.xx.xx.A", "com.xx.xx.B","cn.hutool"})
    @MapperScan("com.didiglobal.hr.global.platform.dao.mapper")
    @Slf4j
    public class Application {
    public static void main(String[] args) {
    long start = System.currentTimeMillis();
    SpringApplication.run(Application.class, args);
    log.info("Springboot start Success,cost:{}", System.currentTimeMillis() - start);
    }
    }

    EventBus配置:

    @Bean
    public EventBus eventBus() {
    EventBus eventBus = new EventBus();
    Map<String, AbstractBaseSubscribe> beansOfSubscribe = SpringUtil.getBeansOfType(AbstractBaseSubscribe.class);
    beansOfSubscribe.values().forEach(eventBus::register);
    return eventBus;
    }

    启动时提示错误信息如下:

    提示在实例化EventBus的时候出现了空指针异常

    2、最终解决方案

    @SpringBootApplication(scanBasePackages = {"com.xx.xx.xx.A", "cn.hutool", "com.xx.xx.B"})
    @MapperScan("com.didiglobal.hr.global.platform.dao.mapper")
    @Slf4j
    public class Application {
    public static void main(String[] args) {
    long start = System.currentTimeMillis();
    SpringApplication.run(Application.class, args);
    log.info("Springboot start Success,cost:{}", System.currentTimeMillis() - start);
    }
    }

    将 "cn.hutool" 放到了 "com.xx.xx.B" 前解决这个问题,说明 @SpringBootApplication 注解的 scanBasePackages 扫描包有先后顺序





  • 相关阅读:
    作业11 分类与监督学习,朴素贝叶斯分类算法
    第八次作业
    Python之路【第一篇】:Python基础1
    Python之路【第一篇】:Python基础
    Python 6 数字和布尔值及字符串的基本功能
    Python 7 列表 for 字典,嵌套
    Python 4 循环语句while
    Python 5 运算符
    Python 3 条件语句
    Python 2 声明变量 输入输出 练习
  • 原文地址:https://www.cnblogs.com/myblogs-miller/p/13541349.html
Copyright © 2020-2023  润新知