Como a anotação Spring @ResponseBody funciona neste exemplo de aplicativo RESTful?

Eu tenho um método anotado da seguinte maneira:

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

Então eu sei que por esta anotação:

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

este identificador de métodoPEGUE Solicitações HTTP feitas para o recurso representado pela URL/ pedidos.

Este método chama um objeto DAO que retorna umLista.

OndeConta representa um usuário no sistema e possui alguns campos que representam esse usuário, 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>();

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

Minha pergunta é:Como exatamente o@ResponseBody trabalho de anotação?

Está situado antes do retornoList<Account> objeto, então eu acho que se refere a esta lista. A documentação do curso afirma que esta anotação serve para:

verifique se o resultado será gravado na resposta HTTP por um Conversor de Mensagens HTTP (em vez de uma Visualização MVC).

E também lendo a documentação oficial do Spring:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html

parece que é precisoList<Account> objeto e coloca-o noHttp Response. Isso está correto ou estou entendendo mal?

Escrito no comentário do anterioraccountSummary() método existe:

Você deve obter resultados JSON ao acessarhttp: // localhost: 8080 / rest-ws / app / accounts

Então, o que exatamente isso significa? Isso significa que oList<Account> objeto retornado peloaccountSummary() O método é convertido automaticamente emJSON formato e, em seguida, coloque noHttp Response? Ou o que?

Se essa afirmação for verdadeira, onde é especificado que o objeto será automaticamente convertido emJSON formato? O formato padrão é adotado quando o@ResponseBody anotação é usada ou é especificada em outro lugar?

questionAnswers(4)

yourAnswerToTheQuestion