【问题标题】:How do I include the spring-boot-hateoas-starter which contains spring-hateoas version 1.0.0.M1 into my project如何将包含 spring-hateoas 版本 1.0.0.M1 的 spring-boot-hateoas-starter 包含到我的项目中
【发布时间】:2019-08-06 14:02:26
【问题描述】:

目前我正在尝试使用 Spring 及其相关组件将 .NET 中内置的 API 迁移到 Java。阻止我完成这个项目的唯一原因是 Spring HATEOAS (0.25.1) 的当前发布版本中缺乏可供性,我试图尽可能地复制数据合约,以防止破坏当前正在消费的客户API。

Spring HATEOAS 通过 spring-boot-starter-hateoas Maven 依赖项包含在内。

我已经尝试了启动器依赖项的当前构建快照,但无济于事(最新的 spring-hateos 库不包含在启动器构建快照中)。

1) 有没有办法将当前的里程碑版本包含到我的项目中?如果是这样,你建议我怎么做。

2) 如果没有办法做到这一点,是否有人对如何将 Affordance 概念添加到当前版本有任何建议? (在这一点上招致一些技术债务不是问题,所以如果你有一个不优雅的工作,请分享它,这将从概念上帮助我)。

3) 将 HTTP 返回对象创建为 HashMap 并将其序列化为 JSON 是否更好? (我知道路径等的链接需要手动处理)

其他版本: spring-boot-starter-parent: 2.1.3.RELEASE

谢谢

【问题讨论】:

    标签: spring-boot spring-hateoas


    【解决方案1】:

    关于问题 1) 添加以下依赖项,不要忘记这个依赖项现在源自 Spring Milestone Repository。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-hateoas</artifactId>
        <version>2.2.0.M1</version>
    </dependency>
    
    
    <repositories>
        <repository> 
            <id>repository.spring.milestone</id> 
            <name>Spring Milestone Repository</name> 
            <url>http://repo.spring.io/milestone</url> 
        </repository>
    </repositories>
    

    或者,您可以在版本2.2.0.M1 中使用整个spring-boot-starter,其中还包含spring-boot-starter-hateoas 中的spring-boot-starter-hateoas

    问题 2) 应该不再关心,问题 1) 似乎更容易解决。

    关于问题 3) 恕我直言,几乎所有地方都应该首选强类型(响应)对象,因为它使您的意图更清晰,更易于维护和测试,让您摆脱任何后顾之忧关于强制转换或隐式类型转换等等。

    【讨论】:

    • 感谢您的反馈。我有建议的存储库,我所说的“无济于事”是因为 hatos v1 不在 spring-boot-starter-hateoas 的最新构建快照中。我将更新我的问题以使这一点更清楚。我同意第 3 点,但被卡住了,因此引入技术债务似乎是我及时解决此问题的唯一解决方案。
    • 啊,明白了,你想要一个当前的spring-boot-starter-hateoas 在你的项目中,而不仅仅是它的依赖spring-hateoas:1.0.0.M1,对吧?后一个已经在这里为您提供repo.spring.io/milestone/org/springframework/hateoas/… 我问这个只是为了澄清问题,因为您的问题是指spring-hateoas 而不是首发。
    • 就是这样,我只尝试了 hateoas 项目并破坏了一堆依赖项。我已根据您的建议更新了问题的标题,谢谢。
    • 是的,我这样做了,还有 maven purge 等等。我不确定是 Maven 还是 IntelliJ IDE 导致了这种混乱。也许我应该发布一个不同的问题,因为正如您所说,2.2.0.M1 明确包含 1.0.0.M1 版本?
    • 我将把它标记为答案,因为它回答了原始问题。将在 Maven 和 IntelliJ 中进行挖掘,如果我不正确,我将发布一个新问题。非常感谢您的宝贵时间!
    猜你喜欢
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2023-03-21
    • 2018-03-27
    • 1970-01-01
    • 2020-03-26
    • 2021-06-01
    • 2019-08-07
    相关资源
    最近更新 更多