Saya memiliki metode yang dijelaskan dengan cara berikut:
/**
* 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();
}
Jadi saya tahu bahwa dengan anotasi ini:
@RequestMapping(value="/orders", method=RequestMethod.GET)
metode ini menangani permintaan GET HTTP yang dibuat ke sumber daya yang diwakili oleh URL / pesanan .
Metode ini memanggil objek DAO yang mengembalikan Daftar .
di mana Akun mewakili pengguna di sistem dan memiliki beberapa bidang yang mewakili pengguna ini, seperti:
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>();
...............................
...............................
...............................
}
Pertanyaan saya adalah: Bagaimana tepatnya cara @ResponseBodykerja anotasi?
Itu terletak sebelum List<Account>objek yang dikembalikan jadi saya pikir itu mengacu pada Daftar ini. Dokumentasi kursus menyatakan bahwa anotasi ini berfungsi untuk:
memastikan bahwa hasilnya akan ditulis ke respons HTTP oleh HTTP Message Converter (bukan Tampilan MVC).
Dan juga membaca dokumentasi resmi Musim Semi: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
tampaknya ia mengambil List<Account>objek dan memasukkannya ke dalam Http Response. Apakah ini benar atau saya salah paham?
Ditulis ke dalam komentar dari accountSummary()metode sebelumnya ada:
Anda harus mendapatkan hasil JSON saat mengakses http: // localhost: 8080 / rest-ws / app / accounts
Jadi apa sebenarnya artinya ini? Apakah ini berarti bahwa List<Account>objek yang dikembalikan oleh accountSummary()metode secara otomatis diubah ke dalam JSONformat dan kemudian dimasukkan ke dalam Http Response? Atau apa?
Jika pernyataan ini benar, di manakah ditentukan bahwa objek akan secara otomatis diubah ke dalam JSONformat? Apakah format standar diadopsi saat @ResponseBodyanotasi digunakan atau ditentukan di tempat lain?