次のように注釈が付けられたメソッドがあります。
/**
* 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();
}
だから私はこの注釈によってそれを知っています:
@RequestMapping(value="/orders", method=RequestMethod.GET)
このメソッドは、URL / ordersで表されるリソースに対して行われたGET HTTPリクエストを処理します。
このメソッドは、Listを返すDAOオブジェクトを呼び出します。
ここで、Accountはシステム上のユーザーを表し、このユーザーを表す次のようなフィールドがあります。
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>();
...............................
...............................
...............................
}
私の質問は:アノテーションはどのように正確に機能し@ResponseBody
ますか?
返されたList<Account>
オブジェクトの前にあるので、このリストを参照していると思います。コースのドキュメントには、このアノテーションが次の機能を果たすことが記載されています。
結果が(MVCビューではなく)HTTPメッセージコンバーターによってHTTP応答に書き込まれることを確認します。
また、Springの公式ドキュメントもお読みください:http : //docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
かかると思われList<Account>
たオブジェクトをとに格納しますHttp Response
。これは正しいですか、それとも私は誤解していますか?
前のaccountSummary()
方法のコメントに書かれています:
http:// localhost:8080 / rest-ws / app / accountsにアクセスすると、JSONの結果が得られるはず です
これはどういう意味ですか?メソッドList<Account>
によって返されたオブジェクトaccountSummary()
が自動的にJSON
フォーマットに変換されてからHttp Response
?または何?
このアサーションがtrueの場合、オブジェクトが自動的にJSON
フォーマットに変換されることはどこに指定されていますか?@ResponseBody
アノテーションの使用時に標準形式が採用されていますか、それとも他の場所で指定されていますか?