MyController中,@Autowired可以很好地插入myService,而无需获取/设置:

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


但是,当我尝试将@Autowired批注应用于myOtherServiceMyService字段时,出现一条错误消息,提示它找不到myOtherService的必要设置方法-但如果我填写了此字段的getter和setter方法:

这项工作:

@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仅适用于控制器吗?

最佳答案

您给出了答案-您的服务包没有<context:component-scan />。如果添加它,将具有注释自动装配

08-18 16:58