Правильное использование сервисов и контроллеров Java/Spring MVC
Такой вопрос: В моем контроллере используется множество сервисов. Допустим, мне надо изменить поля в Book, User и Review после получения запроса в ReviewController. Тогда мой конструктор выглядит так:
@Autowired
public ReviewController(ReviewService reviewService, BookService bookService, UserService userService) {
this.reviewService = reviewService;
this.bookService = bookService;
this.userService = userService;
}
И мой метод контроллера:
@PostMapping("/{id}")
public String createReview(@PathVariable Integer id, @ModelAttribute Review review){
review.setUser(userService.loadUserByUsername(SecurityContextHolder.getContext()
.getAuthentication().getName()).user());
review.setBook(bookService.findOne(id).get());
reviewService.save(review);
Book reviewedBook = bookService.findOne(id).get();
List<Review> reviews = reviewedBook.getReviews();
reviews.add(review);
reviewedBook.setReviews(reviews);
User user = userService.loadUserByUsername(SecurityContextHolder.getContext().getAuthentication().getName()).user();
List<Review> usersReviews = user.getReviews();
usersReviews.add(review);
user.setReviews(usersReviews);
return "redirect:/books";
}
Насколько это плохая практика? И если да, то как это можно исправить? Заранее спасибо