আমি এমভিসি এবং রেস্টের সাথে একত্রে স্প্রিং ফ্রেমওয়ার্ক 4.0.7 নিয়ে কাজ করছি
আমি এর সাথে শান্তিতে কাজ করতে পারি:
@Controller
ResponseEntity<T>
উদাহরণ স্বরূপ:
@Controller
@RequestMapping("/person")
@Profile("responseentity")
public class PersonRestResponseEntityController {
পদ্ধতি সহ (কেবল তৈরি করতে)
@RequestMapping(value="/", method=RequestMethod.POST)
public ResponseEntity<Void> createPerson(@RequestBody Person person, UriComponentsBuilder ucb){
logger.info("PersonRestResponseEntityController - createPerson");
if(person==null)
logger.error("person is null!!!");
else
logger.info("{}", person.toString());
personMapRepository.savePerson(person);
HttpHeaders headers = new HttpHeaders();
headers.add("1", "uno");
//http://localhost:8080/spring-utility/person/1
headers.setLocation(ucb.path("/person/{id}").buildAndExpand(person.getId()).toUri());
return new ResponseEntity<>(headers, HttpStatus.CREATED);
}
কিছু ফিরে
@RequestMapping(value="/{id}", method=RequestMethod.GET)
public ResponseEntity<Person> getPerson(@PathVariable Integer id){
logger.info("PersonRestResponseEntityController - getPerson - id: {}", id);
Person person = personMapRepository.findPerson(id);
return new ResponseEntity<>(person, HttpStatus.FOUND);
}
ঠিকভাবে কাজ করে
আমি এটি দিয়েও করতে পারি :
@RestController
(আমি জানি এটি@Controller
+ এর সমান@ResponseBody
)@ResponseStatus
উদাহরণ স্বরূপ:
@RestController
@RequestMapping("/person")
@Profile("restcontroller")
public class PersonRestController {
পদ্ধতি সহ (কেবল তৈরি করতে)
@RequestMapping(value="/", method=RequestMethod.POST)
@ResponseStatus(HttpStatus.CREATED)
public void createPerson(@RequestBody Person person, HttpServletRequest request, HttpServletResponse response){
logger.info("PersonRestController - createPerson");
if(person==null)
logger.error("person is null!!!");
else
logger.info("{}", person.toString());
personMapRepository.savePerson(person);
response.setHeader("1", "uno");
//http://localhost:8080/spring-utility/person/1
response.setHeader("Location", request.getRequestURL().append(person.getId()).toString());
}
কিছু ফিরে
@RequestMapping(value="/{id}", method=RequestMethod.GET)
@ResponseStatus(HttpStatus.FOUND)
public Person getPerson(@PathVariable Integer id){
logger.info("PersonRestController - getPerson - id: {}", id);
Person person = personMapRepository.findPerson(id);
return person;
}
আমার প্রশ্নগুলি হ'ল:
- যখন কোনও দৃ reason় কারণে বা নির্দিষ্ট দৃশ্যের জন্য এক বিকল্প অপরটির চেয়ে বাধ্যতামূলকভাবে ব্যবহার করা উচিত
- যদি (1) কিছু যায় আসে না, তবে কোন পদ্ধতির পরামর্শ দেওয়া হয়েছে এবং কেন।
ResponseEntity
এটি সম্পর্কে আরও ভেবেছি , এটি আরও নমনীয়। শুধু আমি সন্দেহ সম্পর্কে ছিল@RestController
। আপনাকে ধন্যবাদ