You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle多模块Micronaut项目IOrderRepository Bean注入失败求助

Micronaut Gradle多模块项目Bean依赖注入问题解决方案
  • 检查Gradle模块依赖链路
    确保项目的启动模块(通常是application模块)直接或间接依赖infrastructure模块。如果启动模块仅依赖core模块,infrastructure中的类不会被纳入编译和扫描范围。
    在启动模块的build.gradle中添加依赖:

    implementation project(':infrastructure')
    

    同时确认infrastructure模块的build.gradle已正确依赖core模块:

    implementation project(':core')
    
  • 配置Micronaut的Bean扫描范围
    Micronaut默认仅扫描启动类(带@MicronautApplication注解的类)所在包及其子包,若infrastructure模块的包不在默认扫描范围内,需显式配置:

    1. 在启动类上添加@Scan注解指定扫描包:
      @MicronautApplication
      @Scan({"fete.bird.core", "fete.bird.infrastructure"})
      public class Application {
          public static void main(String[] args) {
              Micronaut.run(Application.class, args);
          }
      }
      
    2. 或在配置文件(application.yml)中全局配置扫描包:
      micronaut:
        packages:
          - fete.bird.core
          - fete.bird.infrastructure
      
  • 确认Bean注解与类继承正确性

    • 确保OrderRepository类上的@Singleton注解是Micronaut原生的io.micronaut.context.annotation.Singleton,而非其他框架的同名注解。
    • 检查OrderRepository是否正确实现IOrderRepository接口,包路径、类名拼写无错误。
  • 验证Introspected配置(可选)
    若IOrderRepository使用了@Introspected,无需额外配置实现类,只要实现类被正确扫描为Bean即可。若存在特殊场景,可在接口上指定实现类:

    @Introspected(classes = OrderRepository.class)
    public interface IOrderRepository {
        // ...
    }
    

内容的提问来源于stack exchange,提问作者San Jaisy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:42:13