美文网首页
springboot 包扫描机制导致的ApplicationCo

springboot 包扫描机制导致的ApplicationCo

作者: DimonHo | 来源:发表于2021-03-20 09:58 被阅读0次

    问题描述:

    AuthServer 项目依赖自定义的 commons 工具包,在 AuthService 中使用 ApplicationUtil 获取 bean 的时候,发现ApplicationUtil.getBean()返回 null。

    项目结构如下图


    commons AuthServer

    原因分析:

    ApplicationUtil
    可以看到 ApplicationUtil 使用了@Component注解,spring会自动将该注解的类自动装配到beans管理,但默认它只会扫描main同级及同级一下的包,所以,这里的问题就一目了然了,因为 ApplicationUtil 在com.dmjy.cloud.commons包下面,而 AuthServer 的包是com.dmjy.cloud.authserver。所以 AuthServer 是不会主动取扫描 commons 包下 bean 的。

    解决办法:

    在 AuthServerApplication 类中添加@ComponentScan(basePackages = {"com.dmjy.cloud"}) 手动指定扫包路径即可解决

    image.png

    相关文章

      网友评论

          本文标题:springboot 包扫描机制导致的ApplicationCo

          本文链接:https://www.haomeiwen.com/subject/hrwicltx.html