在MyController
中,@Autowired
可以很好地插入myService
,而无需获取/设置:
@Controller
public class MyController
{
@Autowired
private MyService myService;
但是,当我尝试将
@Autowired
批注应用于myOtherService
的MyService
字段时,出现一条错误消息,提示它找不到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 />
。如果添加它,将具有注释自动装配