У меня есть две службы, которые я хочу использовать в одном контроллере.Я использую аннотацию @Autowired и @ Qualifier-s, но что-то не работает, возможно, из-за отсутствия Contructor.
Контроллер:
@Controller
public class Main{
@Autowired
@Qualifier("postServiceImpl")
private PostService postService;
@Autowired
@Qualifier("userServiceImpl")
private UserService userService;
@ModelAttribute("post")
public PostDTO userRegistrationDto() {
return new PostDTO();
}
@GetMapping("/")
public String root(Model model) {
model.addAttribute("list", postService.listAllPosts());
return "index";}
@GetMapping("/adminPage")
public String admin(Model model){
???
model.addAttribute("posts", postService.listAllPosts());
model.addAttribute("users", userService.listAllUsers());
return "admin";}
}
Сервис 1:
@Service
public class PostServiceImpl implements PostService {
@Autowired
private PostRepository postRepository;
public PostServiceImpl(PostRepository postRepository){
this.postRepository = postRepository;
}
public PostServiceImpl(){}
}
Сервис 2:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Autowired
private BCryptPasswordEncoder passwordEncoder;
}
Это правильный способ добавить два атрибута сервиса в одну модель?
model.addAttribute("posts", postService.listAllPosts());
model.addAttribute("users", userService.listAllUsers());