Почему @Autowired работает в моем контроллере, а не в моем сервисе? - PullRequest
0 голосов
/ 07 июля 2011

В MyController, @Autowired отлично работает, чтобы вытянуть myService без методов получения / установки:

@Controller
public class MyController
{
    @Autowired
    private MyService myService;

Но когда я пытаюсь применить аннотацию @Autowired к myOtherServiceполе MyService, я получаю сообщение о том, что не могу найти необходимый метод установки для myOtherService - но он работает, если я заполняю методы получения и установки для этого поля:

ЭТО РАБОТАЕТ:

@Service
public class MyService
{
    private MyOtherService myOtherService;

    public void setMyOtherService(MyOtherService myOtherService)
    {
        this.myOtherService = myOtherService;
    }

    public MyOtherService getMyOtherService()
    {
        return myOtherService;
    }

ЭТО НЕ РАБОТАЕТ:

@Service
public class MyService
{
    @Autowired
    private MyOtherService myOtherService;

@Autowired работает только на контроллерах?

1 Ответ

3 голосов
/ 07 июля 2011

Вы дали свой ответ - у вас нет <context:component-scan /> для пакета услуг. Если вы добавите его, у вас будет аннотация проводки

...