Wie funktioniert die Spring @ResponseBody-Annotation in diesem RESTful-Anwendungsbeispiel?

Ich habe eine Methode, die wie folgt mit Anmerkungen versehen ist:

/**
* 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();
}

So weiß ich das durch diese Anmerkung:

@RequestMapping(value="/orders", method=RequestMethod.GET)

diese Methode handleBEKOMME HTTP-Anforderungen an die Ressource, die durch die URL @ dargestellt wi/Aufträg.

Diese Methode ruft ein DAO-Objekt auf, das ein @ zurückgibAufführe.

woKont repräsentiert einen Benutzer im System und hat einige Felder, die diesen Benutzer repräsentieren, wie zum Beispiel:

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 das@ResponseBody Annotation Arbeit?

s befindet sich vor dem zurückgegebenenList<Account>Objekt also denke ich, dass es sich um diese Liste handelt. Die Kursdokumentation besagt, dass diese Annotation folgende Funktion erfüllt:

Stellen Sie sicher, dass das Ergebnis von einem HTTP Message Converter (anstelle einer MVC-Ansicht) in die HTTP-Antwort geschrieben wird.

Und lesen Sie auch die offizielle Spring-Dokumentation:http: //docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.htm

es scheint, dass es das @ braucList<Account> Objekt und setzt es in dasHttp Response. Ist das richtig oder missverstehe ich das?

In den Kommentar des vorherigen @ geschriebaccountSummary() Methode gibt es:

Sie sollten JSON-Ergebnisse erhalten, wenn Sie auf @ zugreifehttp: // localhost: 8080 / rest-ws / app / accounts

Also, was genau bedeutet das? Bedeutet das, dass dasList<Account> Objekt, das vom @ zurückgegeben wuraccountSummary() Methode wird automatisch in @ konvertieJSON -Format und dann in dasHttp Response? Oder was

Wenn diese Aussage wahr ist, wird angegeben, dass das Objekt automatisch in @ konvertiert wirJSON Format? Wird das Standardformat übernommen, wenn das@ResponseBody Annotation wird verwendet oder ist sie an einer anderen Stelle angegeben?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage