Ich habe eine Methode, die folgendermaßen kommentiert wird:
/**
* 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();
}
Also ich weiß das durch diese Anmerkung:
@RequestMapping(value="/orders", method=RequestMethod.GET)
Diese Methode verarbeitet GET- HTTP-Anforderungen an die durch die URL / Bestellungen dargestellte Ressource .
Diese Methode ruft ein DAO-Objekt auf, das eine Liste zurückgibt .
Dabei stellt Konto einen Benutzer im System dar und verfügt über einige Felder, die diesen Benutzer darstellen, z. B.:
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>();
...............................
...............................
...............................
}
Meine Frage ist: Wie genau funktioniert die @ResponseBody
Anmerkung?
Es befindet sich vor dem zurückgegebenen List<Account>
Objekt, daher denke ich, dass es sich auf diese Liste bezieht. In der Kursdokumentation heißt es, dass diese Anmerkung folgende Funktion erfüllt:
Stellen Sie sicher, dass das Ergebnis von einem HTTP-Nachrichtenkonverter (anstelle einer MVC-Ansicht) in die HTTP-Antwort geschrieben wird.
Lesen Sie auch die offizielle Spring-Dokumentation: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
es scheint, dass es das List<Account>
Objekt nimmt und es in das legt Http Response
. Ist das richtig oder verstehe ich falsch?
In den Kommentar der vorherigen accountSummary()
Methode geschrieben steht:
Sie sollten JSON-Ergebnisse erhalten, wenn Sie auf http: // localhost: 8080 / rest-ws / app / accounts zugreifen
Was genau bedeutet das? Bedeutet dies, dass das List<Account>
von der accountSummary()
Methode zurückgegebene Objekt automatisch in das JSON
Format konvertiert und dann in das Format eingefügt wird Http Response
? Oder was?
Wenn diese Behauptung wahr ist, wo wird angegeben, dass das Objekt automatisch in das JSON
Format konvertiert wird ? Wird das Standardformat übernommen, wenn die @ResponseBody
Anmerkung verwendet wird, oder wird es an anderer Stelle angegeben?