Как работает аннотация Spring @ResponseBody в этом примере приложения RESTful?
У меня есть метод, который аннотируется следующим образом:
/**
* 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)
этот метод дескрипторПОЛУЧИТЬ HTTP-запросы к ресурсу, представленному URL/ заказы.
Этот метод вызывает объект DAO, который возвращаетСписок.
гдеучетная запись представляет пользователя в системе и имеет некоторые поля, представляющие этого пользователя, например:
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 конвертером сообщений HTTP (вместо представления MVC).
А также читая на официальной документации Spring:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
кажется, что это занимаетList<Account>
объект и помещает его вHttp Response
, Это правильно или я неправильно понимаю?
Вписано в комментарий предыдущегоaccountSummary()
Метод есть:
Вы должны получить результаты JSON при доступеHTTP: // локальный: 8080 / отдых-WS / приложение / счета
Так что именно это значит? Значит ли это, чтоList<Account>
объект, возвращаемыйaccountSummary()
метод автоматически конвертируется вJSON
формат, а затем положить вHttp Response
? Или что?
Если это утверждение верно, где указано, что объект будет автоматически преобразован вJSON
формат? Является ли стандартный формат принятым, когда@ResponseBody
аннотация используется или она указана в другом месте?