Quarkus中OpenAPI生成Controller的依赖注入问题求助
解决OpenAPI生成的Kotlin控制器无法注入的问题
问题场景
通过OpenAPI生成了Kotlin客户端Rest Controller(类名ProductControllerApi),无法修改该生成类的代码。尝试在业务类中注入该控制器:
class ProductsService @Inject constructor(val productsController: ProductControllerApi)
运行时抛出错误:Unsatisfied dependency for type ProductControllerApi and qualifiers [@Default]。手动给ProductControllerApi添加@ApplicationScoped注解可解决依赖问题,但每次重新生成代码后,手动添加的注解会丢失。
可行解决方案
使用生产者方法向依赖注入容器提供ProductControllerApi的实例,无需修改生成类,代码示例如下:
@Produces fun getProductController(): ProductControllerApi { return ProductControllerApi() }
该方法会被容器识别,自动为需要注入ProductControllerApi的地方提供实例,且不受代码重新生成的影响。
内容的提问来源于stack exchange,提问作者strelok
相关产品推荐
相关产品推荐

