Как вложить один контроллер в другой?

У меня есть 2 контроллера: UserController и GameController. Мне нужно в GameController использовать UserController. Внедряю я его с помощью анотации @Autowired. Но почему-то у меня не работает эта анотация, и я получаю значение null. Важно! Мне нужно внедрить UserController именно используя анотацию @Autowired. Подскажите пожалуйста, в чем проблема? Возможно я что-то забыл подключить, или что-то подключил неправильно... Буду благодарен каждому за любую помощь!

UserController:

package sk.tuke.gamestudio.server.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.context.WebApplicationContext;
import sk.tuke.gamestudio.entity.Player;
import sk.tuke.gamestudio.service.PlayerService;

@Controller
@Scope(WebApplicationContext.SCOPE_SESSION)
public class UserController {
    @Autowired
    private PlayerService playerService;

    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public String loginPage(Model model) {
        Player player = new Player();
        model.addAttribute("player", player);
        return "login";
    }

    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public String loginProcess(@ModelAttribute("player") Player player) {
        Player dbPlayer = playerService.getPlayerByNickname(player.getNickname());
        if(dbPlayer != null) {
            if(player.getPassword().equals(dbPlayer.getPassword())) {
                loggedPlayer = new Player(player.getId(), player.getNickname(), player.getPassword(), player.getLevel());
                return "redirect:/lightsoff";
            }
        }
        return "redirect:/login";
    }
}

GameController:

package sk.tuke.gamestudio.server.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.context.WebApplicationContext;
import sk.tuke.gamestudio.entity.Player;
import sk.tuke.gamestudio.game.lightsoff.consoleUI.ConsoleUI;
import sk.tuke.gamestudio.game.lightsoff.core.Logic;
import sk.tuke.gamestudio.game.lightsoff.core.StateTile;

@Controller
@RequestMapping("/lightsoff")
@Scope(WebApplicationContext.SCOPE_SESSION)
public class GameController {
    @Autowired
    private UserController userController;

    private Player player = userController.getLoggedPlayer();
    private ConsoleUI consoleUI = new ConsoleUI();
    private Logic logic = new Logic(consoleUI);
    private int[][] field;

    @RequestMapping
    public String startGame(@RequestParam(required = false) String row, @RequestParam(required = false) String column, Model model) {
        model.addAttribute("player", player);
        if(row != null && column != null) {
            logic.switchStars(field, Integer.parseInt(row), Integer.parseInt(column), consoleUI.getColumns());
        }
        return "game";
    }
    
    public String getHtmlField() {
        StringBuilder sb = new StringBuilder();
        sb.append("<table>\n");
        for(int i = 0; i < consoleUI.getRows(); i++) {
            sb.append("<tr>\n");
            for(int j = 0; j < consoleUI.getColumns(); j++) {
                sb.append("<td>");
                sb.append(String.format("<a href='/lightsoff?row=%d&column=%d'>", i, j));
                if(field[i][j] == StateTile.ON.getValue()) {
                    sb.append("<img src='/img/lamp_on.png'>\n");
                } else {
                    sb.append("<img src='/img/lamp_off.png'>\n");
                }
                sb.append("</a>");
                sb.append("</td>");
            }
            sb.append("</tr>\n");
        }
        sb.append("</table>\n");
        return sb.toString();
    }
}

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