다음과 같은 방법으로 주석이 달린 메서드가 있습니다.
/**
* Provide a list of all accounts.
*/
// TODO 02: Complete this method. Add annotations to respond
// to GET /accounts and return a List<Account> to be converted.
// Save your work and restart the server. You should get JSON results when accessing
// http://localhost:8080/rest-ws/app/accounts
@RequestMapping(value="/orders", method=RequestMethod.GET)
public @ResponseBody List<Account> accountSummary() {
return accountManager.getAllAccounts();
}
그래서 저는이 주석으로 알고 있습니다.
@RequestMapping(value="/orders", method=RequestMethod.GET)
이 메서드 는 URL / orders로 표시되는 리소스에 대한 GET HTTP 요청을 처리 합니다 .
이 메서드는 List 를 반환하는 DAO 개체를 호출합니다 .
여기서 Account 는 시스템의 사용자를 나타내며 다음과 같이이 사용자를 나타내는 일부 필드가 있습니다.
public class Account {
@Id
@Column(name = "ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long entityId;
@Column(name = "NUMBER")
private String number;
@Column(name = "NAME")
private String name;
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name = "ACCOUNT_ID")
private Set<Beneficiary> beneficiaries = new HashSet<Beneficiary>();
...............................
...............................
...............................
}
내 질문은 : 주석 이 정확히 어떻게 @ResponseBody
작동합니까?
반환 된 List<Account>
객체 앞에 위치하므로이 목록을 참조한다고 생각합니다. 코스 문서에는이 주석이 다음과 같은 기능을 제공한다고 명시되어 있습니다.
결과가 HTTP 메시지 변환기 (MVC보기 대신)에 의해 HTTP 응답에 기록되는지 확인하십시오.
또한 공식 Spring 문서에서 읽기 : http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
그것은 List<Account>
객체를 가져 와서 Http Response
. 이것이 맞습니까 아니면 오해입니까?
이전 accountSummary()
방법 의 주석 에는 다음이 기록됩니다.
http : // localhost : 8080 / rest-ws / app / accounts에 액세스 할 때 JSON 결과를 받아야 합니다.
이것이 정확히 무엇을 의미합니까? 것을 그것은 뜻 List<Account>
에 의해 반환 된 객체 accountSummary()
메소드가 자동으로 변환되어 JSON
포맷 한 다음에 넣어 Http Response
? 또는 무엇을?
이 어설 션이 참이면 개체가 자동으로 JSON
형식 으로 변환되도록 지정하는 곳은 어디 입니까? @ResponseBody
주석이 사용될 때 표준 형식이 채택 됩니까 아니면 다른 곳에 지정되어 있습니까?