我正在使用spring-boot和使用spring-Hateoas开发一个rest应用程序。我写的DTO是:
Bill.java
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonRootName("bills")
public class Bill{
Depedencies:
dependencies {
compile "org.springframework.boot:spring-boot-starter-hateoas"
compile "org.springframework.boot:spring-boot-starter-ws"
compile "org.springframework.boot:spring-boot-starter-actuator"
compile "org.springframework.cloud:spring-cloud-starter-eureka:${springCloudVersion}"
testCompile("org.springframework.boot:spring-boot-starter-test")
}
Application.java:
@Configuration
@Import(BillServiceConfig.class)
@EnableAutoConfiguration
@EnableEurekaClient
@ComponentScan({"com.billing"})
@EnableWebMvc
@EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL)
public class Application {
BillController.java:
@RequestMapping(method = RequestMethod.GET, value = "")
public ResponseEntity<Resources<Resource<Bill>>> getBills(@PathVariable String billUid)
我使用的spring-boot版本是1.2.2。我得到的输出是
`_embedded: {
BillList:
{`
这里的json Root名称是BillList。但我需要它作为“账单”而不是“BillList”。任何人都可以帮助解决这个问题。提前谢谢。
答案 0 :(得分:2)
_embedded
子句中的键实际上是关系名称。因此,它们通过Spring HATEOAS中的RelProvider
抽象获得。自定义它们的最简单方法是使用@Relation
注释域类型,并定义项目和集合关系所需的关系名称。
获取_embedded
子句中使用的正确复数的简便方法是将Evo Inflector JAR添加到类路径中,如文档here所述。