Spring Controller ve RestController Annotationlar
Bu yazımda Spring annotationlarından controller ve restcontroller
Spring Boot ile Webservis yazarken Rest ve Soap servislerinde kullanılan annotationları anlatacağım.
1.Spring controller annotation
Spring 2.5, @Controller'ı MVC mimarisi için web servisi annotaionı olarak kullanılmaktadır. .
Spring 3.0, yöntemin dönüş türünü doğrudan HTTP yanıt gövdesine döndürmek için @ResponseBody kullanılmaktadır.
Hızlı bir şekilde RESTful web hizmetleri oluşturmak için hem @Controller hem de @ResponseBody'yi kullanabiliriz.
@Controller
@Slf4j
public class PostControllerOrnek {
private final PostServiceImpl postService;
public PostControllerOrnek(PostServiceImpl postService) {
this.postService = postService;
}
@RequestMapping(value="/getAllPost", method= RequestMethod.GET)
@ResponseBody
public ResponseEntity<List<PostDto>> getAllPost() {
log.info("PostController->getAllPost");
List<PostDto> PostDtoList = postService.getAllPost();
return ResponseEntity.ok(PostDtoList);
}
}

2.Spring RestController annotation
RESTful mimarisi popüler hale geldiği için ve bir sınıf kolayca birçok yinelenen kod üreten birçok @ResponseBody yöntemi içerdiğinden controller ve responsebody birleşerek restcontroller çıktı.
Spring 4.0, RESTful web hizmetlerinin oluşturulmasını basitleştirmek için @RestController'ı tanıttı.
@RestController'ın kendisi ayrıca @Controller ve @ResponseBody ile kullanılabilir..
@RestController
@RequestMapping(ApiPaths.PostCtrl.CTRL)
@Api(value = ApiPaths.PostCtrl.CTRL, description = "Post API")
@Slf4j
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class PostController {
private final PostServiceImpl postService;
public PostController(PostServiceImpl postService) {
this.postService = postService;
}
}

Spring Boot webservisinde kullanılan annotaionlardan bahsettim.Bu ve benzeri yazılarımızı internet sitemizden okuyabilirsiniz. Şimdilik iyi çalışmalar.
https://latestsoftwaredevelopers.hashnode.dev/
https://medium.com/@latestsoftwaredevelopers
https://latestsoftwaredevelopers.com