老蒋的知识库

  • 首页
  • 文章归档
  • 关于页面

  • 搜索

Spring boot 加载公共组件提示Bean无法注入

发表于 2025-02-26 | 分类于 Java | 0 | 阅读次数 27

假设目录结构如下,chat服务要导入im组件注入bean。

com.jagger
├── common          <- 公共模块
│   └── im          <- IM 组件
└── services        <- 微服务模块
    └── chat        <- Chat 微服务

因为im不属于chat子包层级,spring boot启动时不会默认扫描。这时就需要在im包对外主动暴露自动配置类,chat服务导入时根据配置类进行扫描。

添加IMAutoConfiguration类

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan("com.jagger.common.im") // 指定扫描路径
public class IMAutoConfiguration {
}

添加AutoConfiguration文件

如果是spring boot2.7以下创建文件:resources/META-INF/spring.factories,并写入

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.jagger.common.im.IMAutoConfiguration

如果是spring boot2.7以上,特别是3.x创建文件:/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,注意这里目录结构不一样是:/resources/META-INF/spring

com.jagger.common.im.IMAutoConfiguration
  • 本文作者: jagger
  • 本文链接: /archives/springboot-jia-zai-gong-gong-zu-jian-ti-shi-bean-wu-fa-zhu-ru
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
Spring Boot Gateway 网关配置,Nacos服务发现注册。
docker hub push 一直提示无权限
jagger

jagger

66 日志
31 分类
0 标签
Creative Commons
0%
© 2026 jagger
由 Halo 强力驱动