मेरे पास एक तरीका है जो निम्नलिखित तरीके से एनोटेट किया गया है:
/**
* 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 / आदेशों द्वारा प्रस्तुत संसाधन के लिए किए गए GET HTTP अनुरोधों को संभालती है ।
यह विधि किसी DAO ऑब्जेक्ट को कॉल करती है जो एक सूची देता है ।
जहां खाता सिस्टम पर एक उपयोगकर्ता का प्रतिनिधित्व करता है और कुछ क्षेत्र हैं जो इस उपयोगकर्ता का प्रतिनिधित्व करते हैं, कुछ इस तरह है:
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>
वस्तु से पहले स्थित है इसलिए मुझे लगता है कि यह इस सूची को संदर्भित करता है। पाठ्यक्रम प्रलेखन में कहा गया है कि यह एनोटेशन समारोह को निम्न कार्य करता है:
सुनिश्चित करें कि परिणाम HTTP संदेश कनवर्टर (एक एमवीसी दृश्य के बजाय) द्वारा HTTP प्रतिक्रिया के लिए लिखा जाएगा।
और आधिकारिक वसंत प्रलेखन पर भी पढ़ रहे हैं: 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 / account एक्सेस करते समय आपको JSON परिणाम प्राप्त करना चाहिए
तो वास्तव में इसका क्या मतलब है? क्या इसका मतलब यह है कि विधि List<Account>
द्वारा लौटाई गई वस्तु accountSummary()
स्वचालित रूप से JSON
प्रारूप में परिवर्तित हो जाती है और फिर अंदर डाल दी जाती है Http Response
? और क्या?
यदि यह दावा सही है, तो यह कहां निर्दिष्ट है कि वस्तु स्वतः ही JSON
प्रारूप में परिवर्तित हो जाएगी ? क्या @ResponseBody
एनोटेशन का उपयोग करने पर मानक प्रारूप अपनाया जाता है या यह कहीं और निर्दिष्ट किया जाता है?