मैं एक विधि है कि निम्नलिखित तरीके से टिप्पणी की जाती है है:वसंत @ResponseBody एनोटेशन इस रीस्टफुल एप्लिकेशन उदाहरण में कैसे काम करता है?
/**
* 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)
इस विधि प्राप्त HTTP संसाधन द्वारा प्रतिनिधित्व करने के लिए बनाया अनुरोधों को हैंडल यूआरएल /ऑर्डर।
यह विधि एक डीएओ ऑब्जेक्ट को कॉल करती है जो सूची देता है।
जहां खाता सिस्टम पर एक उपयोगकर्ता की तरह कुछ का प्रतिनिधित्व करता है और कुछ क्षेत्रों है कि इस उपयोगकर्ता का प्रतिनिधित्व करते हैं,:
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 संदेश कनवर्टर (एक MVC देखें के बजाय) द्वारा HTTP प्रतिसाद करने के लिए लिखा जाएगा।
और यह भी आधिकारिक स्प्रिंग प्रलेखन पर पढ़ने: http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
ऐसा लगता है कि यह List<Account>
वस्तु लेता है और यह Http Response
में डालता है। क्या यह सही है या क्या मैं गलतफहमी कर रहा हूं?
पिछले accountSummary()
विधि की टिप्पणी में लिखा है:
तो वास्तव में इसका क्या मतलब है तक पहुँचने आप JSON परिणाम प्राप्त करना चाहिए? क्या इसका मतलब यह है कि ऑब्जेक्ट accountSummary()
विधि द्वारा लौटाया गया ऑब्जेक्ट स्वचालित रूप से JSON
प्रारूप में परिवर्तित हो गया है और फिर Http Response
पर रखा गया है? और क्या?
यदि यह दावा सत्य है, तो यह निर्दिष्ट किया गया है कि ऑब्जेक्ट स्वचालित रूप से JSON
स्वरूप में परिवर्तित हो जाएगा? क्या मानक प्रारूप अपनाया गया है जब @ResponseBody
एनोटेशन का उपयोग किया जाता है या यह कहीं और निर्दिष्ट है?
हाय, हम "स्थापित संदेश कन्वर्टर्स" कैसे सेट अप करते हैं? मैं चाहता हूं कि डिफ़ॉल्ट हमेशा जेसन में परिवर्तित हो जाए। क्या मैं ऐसा करने में सक्षम हूं? – GMsoF
@ जेबी निजेट क्या आप कृपया बता सकते हैं कि http प्रतिक्रिया में जावा ऑब्जेक्ट्स क्यों नहीं हो सकते हैं। मैं जावा के लिए एक नौसिखिया हूँ। –
@ Er.NavedAli http विनिर्देश पढ़ें, http प्रतिक्रिया सामग्री प्रकार उस कानूनी सामग्री को परिभाषित करता है जिसमें http प्रतिक्रिया हो सकती है। इसके लिए कानूनी मान "एप्लिकेशन/ऑक्टेट-स्ट्रीम", "छवि/जेपीईजी", "टेक्स्ट/एचटीएमएल" हो सकते हैं, लेकिन जावा ऑब्जेक्ट्स इसके लिए कानूनी मान नहीं है। – ZhaoGang