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

Quarkus注入SpringBoot依赖类报UnsatisfiedResolutionException错误如何解决

错误原因

这个报错是Quarkus底层使用的CDI依赖注入容器无法找到对应类型的Bean导致的:

  • Quarkus默认只会扫描当前项目中带有CDI作用域注解(如@ApplicationScoped、@RequestScoped等)的类,将其注册为可注入的Bean
  • 你引入的第三方Spring Boot依赖中的TestService没有标注任何CDI作用域注解,因此没有被CDI容器识别注册,注入时就会抛出UnsatisfiedResolutionException异常

解决方案

根据你是否能修改第三方依赖的代码,可选择对应方案:

方案1:可修改第三方依赖代码

直接给TestService类添加CDI的@ApplicationScoped注解即可,注意要使用javax.enterprise.context.ApplicationScoped,不要误用Spring的同名注解。

方案2:不可修改第三方依赖代码

使用CDI的@Produces生产者方法手动注册Bean,新建一个配置类如下:

import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
import com.test.model.TestService;

@ApplicationScoped
public class ThirdPartyBeanConfig {
    @Produces
    @ApplicationScoped
    public TestService produceTestService() {
        // 若TestService构造需要其他依赖,可先将依赖注入当前配置类,再构造实例
        return new TestService();
    }
}

配置完成后CDI容器就能识别到TestService类型的Bean,可正常注入使用。

方案3:依赖中的类已加Spring组件注解

如果TestService类上已经标注了Spring的@Service、@Component等组件注解,可直接引入Quarkus的Spring DI兼容扩展,在build.gradle中添加如下依赖即可:

implementation 'io.quarkus:quarkus-spring-di'

引入扩展后Quarkus会自动识别Spring的组件注解,将对应类注册为CDI Bean,无需额外配置。

内容的提问来源于stack exchange,提问作者Abdullah Imran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:15:01