问题描述:
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"})
手动指定扫包路径即可解决
网友评论