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 @ResponseBodyAnmerkung?
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 JSONFormat 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 JSONFormat konvertiert wird ? Wird das Standardformat übernommen, wenn die @ResponseBodyAnmerkung verwendet wird, oder wird es an anderer Stelle angegeben?