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 @ResponseBody
kerja 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 JSON
format dan kemudian dimasukkan ke dalam Http Response
? Atau apa?
Jika pernyataan ini benar, di manakah ditentukan bahwa objek akan secara otomatis diubah ke dalam JSON
format? Apakah format standar diadopsi saat @ResponseBody
anotasi digunakan atau ditentukan di tempat lain?