首页 > 解决方案 > Micronaut:注入后如何设置 HttpClient URL

问题描述

我有以下方法:


    public HttpResponse<String> sendMessage(@NonNull String url, @NonNull String message) {
            try (HttpClient client = HttpClient.create(new URL(url))) { ... }
    }

基本上,我想要实现的是使用作为方法参数的 URL 创建 HttpClient。它不能是配置文件中的属性,因为它取决于一些外部条件。如果我检查 HttpClient.create() 方法的文档,它说它不应该在 Micronaut 环境中使用,而是应该注入客户端。但是,问题是如果它被注入,我无法使用我的自定义 URL 对其进行初始化。

另一个问题是,如果我使用 HttpClient.create() 方法保留它,如果我想对类进行单元测试,我无法模拟 HttpClient。最好的选择是通过构造函数注入它以便能够创建测试。

我有什么选择?我一直无法找到这种类型的初始化。看起来每个人都使用修复 URL?

谢谢!

标签: javamicronaut

解决方案


我会自己回答。显然,您可以在传递给HttpClient方法(检索、交换等)的请求中指定相对 URL 和完整 URL。所以注入时放什么都没关系,实例化客户端。


推荐阅读