如何从 SpringBoot、Java 中的另一个模块调用类

用户9347049

我有一个 Spring Boot 多模块 gradle 项目,我正在尝试从另一个模块调用类。我有一个HttpDataClient.java课程,我想DataResolver.java在另一个模块的课堂上调用它

HttpDataClient.java

public class HttpDataClient implements DataClient{

    private final static Logger LOGGER = LoggerFactory.getLogger(HttpDataClient.class);

    private final RestTemplate restTemplate;
    private final ObjectMapper objectMapper = new ObjectMapper();

    public HttpDataClient(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @Override
    public DataResponse getData(String dataId) {
        try{
            JsonNode node = restTemplate.exchange(
                    String.format("/data/%s", dataId),
                    HttpMethod.POST,
                    new HttpEntity<>(buildRequest(dataId), headers()),
                    JsonNode.class
            ).getBody();
            return dataResponse(node);
        }catch (HttpStatusCodeException e) {
            String msg = String.format(
                    "Error getting data for dataId: %s",
                    dataId,
                    e.getStatusCode(),
                    e.getResponseBodyAsString());
            LOGGER.error(msg);
            return dataResponse.failed();
        }
    }

    private MultiValueMap<String, String> headers() {
        final LinkedMultiValueMap<String, String> mv = new LinkedMultiValueMap<>();
        mv.set(HttpHeaders.CONTENT_TYPE, "application/json");
        return mv;
    }

    private DataResponse dataResponse(JsonNode node) {
        return DataResponse.dataResponse(
                asString(node, "dataId"),
                asString(node, "dataAuthor"),
                asString(node, "dataAuthorId")
        );
    }

    private JsonNode buildRequest(String dataId) {
        ObjectNode root = objectMapper.createObjectNode();
        root.put("dataId", dataId);
        return root;
    }
} 

所以,这个类应该从Data service. 在我想获取响应数据并在其他模块的课堂上做一些事情之后。

我正在尝试这样做:

数据解析器

public class DataResolver {

    private final HttpDataClient client;

    public DataResolver(HttpDataClient client) {
        this.client = client;
    }
}

但是我HttpGameDataClient试图使用它的DataResolver.java不被识别

我在这里缺少什么?任何建议表示赞赏。

杜佩拉特·凯文

确保您需要的模块作为对需要它的模块的依赖。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何调用从Java中另一个类参数的方法?

如何从Java 9中的另一个模块获取ResourceBundle?

如何在Java中从另一个调用一个构造函数?

Java如何在另一个类中调用方法

如何确定某个类是否在Java中扩展了另一个类?

如何在Java中将抽象类方法调用到另一个类

如何在Java中的另一个类中使用嵌套类?

如何调用另一个.java文件中存在的类(不是嵌套类)?

如何从Java中的另一个类调用方法webdriver?

如何从另一个类中迅速调用另一个方法?

如何访问Java中另一个类的另一个方法内的类中的方法

如何在黄瓜Java中创建另一个模块的路径?

如何从另一个类java调用带有参数作为对象的方法?

如何使数组列表在另一个类java中被调用

如何将Java类(从一个包中)继承到另一个类(在另一个包中)

如何使一个Java类仅对包中的另一个类可用

如何从Java的另一个类中调用某些东西并使用它的Array?

如何在Java中的另一个类中从主类访问int?

如何在Java中从另一个类调用方法?

如何从另一个.java文件中的另一个类调用方法?

如何在Java中的另一个类中调用数据库助手类的方法-Android

如何从Java中的另一个类调用actionPerformed方法

如何从另一个类扩展类(Java)

如何使用ArrayList从Java中的另一个类调用方法?

如何使用java中另一个类的另一个面板更改面板的内容

我如何在 Java 中从另一个调用一个 Mutator/Setter?

如何从具有上下文的另一个类调用函数(android,java)

如何多次调用另一个类的 JAVA FX 类

java中如何在没有main方法的情况下从一个类调用toString()方法到另一个类