Правильное использование сервисов и контроллеров 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";
}

Насколько это плохая практика? И если да, то как это можно исправить? Заранее спасибо


Ответы (0 шт):