¿Cómo funciona la anotación Spring @ResponseBody en este ejemplo de aplicación RESTful?

Tengo un método que se anota de la siguiente manera:

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

Entonces sé que por esta anotación:

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

este método manejaOBTENER Solicitudes HTTP realizadas al recurso representado por la URL/pedidos.

Este método llama a un objeto DAO que devuelve unLista.

dóndeCuenta representa a un usuario en el sistema y tiene algunos campos que representan a este usuario, algo como:

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>();

    ...............................
    ...............................
    ...............................
}

Mi pregunta es:¿Cómo exactamente el@ResponseBody trabajo de anotación?

Está situado antes del regresoList<Account> objeto, así que creo que se refiere a esta lista. La documentación del curso establece que esta anotación cumple la función de:

asegúrese de que el resultado se escriba en la respuesta HTTP mediante un convertidor de mensajes HTTP (en lugar de una vista MVC).

Y también leyendo en la documentación oficial de Spring:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html

parece que toma elList<Account> objetar y lo pone en elHttp Response. ¿Es esto correcto o estoy malentendido?

Escrito en el comentario del anterioraccountSummary() método hay:

Debería obtener resultados JSON al accederhttp: // localhost: 8080 / rest-ws / app / accounts

Entonces, ¿qué significa esto exactamente? ¿Significa que elList<Account> objeto devuelto por elaccountSummary() El método se convierte automáticamente enJSON formatear y luego poner en elHttp Response? ¿O que?

Si esta afirmación es verdadera, ¿dónde se especifica que el objeto se convertirá automáticamente enJSON ¿formato? Es el formato estándar adoptado cuando el@ResponseBody ¿Se utiliza la anotación o se especifica en otra parte?

Respuestas a la pregunta(4)

Su respuesta a la pregunta