Избрани анотации
@RestController
Класическите контролери в Spring се обозначават с анотацията @Controller. Това е специализация на класа @Component, която ни позволява автоматично да откриваме класове за внедряване чрез сканиране на classpath-a.
@RestController е специализиран контролер, който включва освен @Controller и анотацията @ResponseBody, която позволява автоматично сериализиране на върнатия обект в HttpResponse.
@RestController
public class ProductServiceController {
}
@Service
Използва се анотиране за класове, които осигуряват реализацията на бизнес логика.
@Service
public class CourseServiceImpl implements CourseService {
}
@Repository
Използва се, за да индикира, че класът осигурява механизми за осъществяване на операции, свързани със съхранение, достъп, обновяване, изтриване и търсене на обекти.
@RequestMapping
Анотацията @RequestMapping се използва за дефиниране на URI на заявката за достъп до крайните точки на REST. В него можем да дефинираме и метод на заявката. Методът за заявка по подразбиране е GET.
@RequestMapping(value = "/ex/foos", method = RequestMethod.GET)
public ResponseEntity<Object> getProducts() { }
@GetMapping (@PostMapping, @PutMapping…)
Анотация за съотнасяне на HTTP GET заявки към специфични методи за обработка. По-конкретно, @GetMapping е съставна анотация, която действа като пряк път за @RequestMapping(method = RequestMethod.GET)
@GetMapping("/{id}")
public ResponseEntity<Object> getProducts() { }
@RequestBody
Анотацията @RequestBody се използва за определяне на типа на съдържанието на тялото на заявката.
public ResponseEntity<Object> createProduct(@RequestBody Product product) {
}
@PathVariable
Анотацията @PathVariable се използва за дефиниране на персонализиран или динамичен URI на заявката. Променливата id в URI на заявката се дефинира във фигурни скоби {}, както е показано по-долу.
@GetMapping("/{id}/view")
public ResponseEntity<Object> updateProduct(@PathVariable("id") String id) {
}
@RequestParam
Анотацията @RequestParam се използва за четене на параметри от URL адреса на заявката. Можем да зададем стойност по подразбиране за параметрите на заявката, както е показано тук.
@GetMapping("/api/foos")
public ResponseEntity<Object> getProduct(
@RequestParam(value = "name", required = false, defaultValue = "honey") String name) {
}
Last updated
Was this helpful?